标签:
Java异常基本记住几个规则就可以了,有些规则从来就没注意过:
1.关于Java异常 Throwable(所有错误和异常的超类) :error(错误) :exception(异常): 编译时异常 运行时异常 2.异常的处理: 1)try-catch语句 2)throw抛出异常 3.关于try catch语句 1)try内声明的变量,类似于局部变量,出了try{}语句,就不能被调用 2)finally语句是可选的 3)catch语句内部是对异常的处理 4)多个catch语句,从上到下进行匹配 5)如果异常被处理,其后的代码继续执行 6)异常并列,catch顺序随意 异常包含关系,先catch子类异常 7)finally内的代码一定会被执行,不管try,catch中是否有异常未处理,以及是否有return语句 注意: 如果try-catch中有throw或者return语句,会先执行finally语句,再执行throw或者return语句;这个 时候如果finally也有return,就会执行return,前面的throw和return就不会执行 8)try-catch是可以嵌套的 4.关于throw抛出异常 1)一般来说知道怎么处理的,用try-catch,不知道怎么处理用throw,可以throw方法产生的异常类型或者 是它的父类 2)抛出异常后,上层的方法也可以try-catch捕获异常,或者继续向上抛,直到给JVM 3)throw也有两种方法,一个是方法上抛出,一个是手动抛出 4)自定义异常类: A:自定义的异常类继承现有的异常类 B:提供一个序列号,提供几个重载的构造器 5)子类重写父类的方法,其抛出的异常类型只能是被重写的方法的异常类的子类或与之相同 原因如下: 例如在多态的时候,要捕获异常,我们不可能知道子类的方法中的异常种类,但是 如果它们是父类的子类,那么只要处理父类的异常即可; 例: A a1 = new B(); A a2 = new C(); try{ a1.method(); a2.method(); }catch(父类异常 e) { e.printStackTrace(); }大概就是这些
标签:
原文地址:http://blog.csdn.net/jintao_ma/article/details/51360907