您的位置:首页 > 编程语言 > Java开发

Java 异常

2016-05-10 10:46 344 查看
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();
}
大概就是这些
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息