zoukankan      html  css  js  c++  java
  • 异常的补充和自定义异常

    自定义异常

    public class MyException extends ArithmeticException{
        private int detail;
    
        public MyException(int a){
            this.detail = a;
        }
    //打印异常的信息
        @Override
        public String toString() {
            return "MyException{" +
                    "detail=" + detail +
                    '}';
        }
    }
    public class Test {
        static void test(int a){
            System.out.println("传递的参数是:"+ a);
            if(a > 10){
                throw new MyException(a);
            }
            System.out.println("OK");
        }
        public static void main(String[] args) {
            try{
                test(99);
            }catch (MyException e){
                System.out.println("MyException ===》》》" +e);
                e.printStackTrace();//实际上也调用toString方法了
            }
        }
    }
    结果:
        传递的参数是:99
        MyException ===》》》MyException{detail=99}
        MyException{detail=99}
    	at InnerCLass.Test.test(Test.java:7)
    	at InnerCLass.Test.main(Test.java:13)
    

    异常使用的经验

    • 合理的使用逻辑去避免异常,同时辅助try catch处理(稳如老狗)
    • 多个catch使用的时候,最末尾加上catch Exception防止遗漏(赶尽杀绝)
    • 不确定是否会产生异常的代码,也用try catch(宁杀错,不放过)
    • 尽量去处理异常,而不是甩锅给别人。(自己的事情自己解决)
    • 如何处理异常时根据业务需求和异常类型决定的(因地制宜)
    • 尽量添加finally语句块去释放占有的资源。(不能占着茅坑不拉屎)
  • 相关阅读:
    Vijos Oct.28 NOIP2012模拟赛
    QBXT day3 圆盘自动机 游戏 方块
    QBXT day2 最近点对 最长路径 山峰
    1609: [Usaco2008 Feb]Eating Together麻烦的聚餐
    1617: [Usaco2008 Mar]River Crossing渡河问题
    委托的Lambda表达式
    值转换器IValueConverter
    Silverlight中遇到的一些问题
    匿名方法
    Silverlight中的Binding
  • 原文地址:https://www.cnblogs.com/li33/p/12713400.html
Copyright © 2011-2022 走看看