java面向对象:异常的捕获与处理
一 异常的定义:
程序运行过程中发生的意外
二、异常处理格式
try {
有可能出现的异常语句
}catch (异常类 对象) {
异常的处理语句
}......
finally {
异常的统一出口
}
以上的三个关键字出现的组合可以有三种:(catch可以一次出现多个)
try…catch
try…finally
try…catch…finally
如何取得异常的完整信息? 用printStackTrace();方法
try {
System.out.println(10/0);
}catch(ArithmeticException e) {
e.printStackTrace();
}
三、throws关键字和throw关键字
**throws:**声明异常
1 在方法定义时,若该方法出现异常后,不希望进行处理,就使用throws抛出。
2 若已经调用了throws声明的方法,那么在调用时必须明确使用try…catch进行异常捕获,因为该方法有可能产生异常。
3 主方法也是方法,也可以用throws进行异常抛出,这时若产生异常,会交给JVM进行处理。
class Person{
public static int div(int x;int y)throws Exception{
return x/y;
}
}
public class Demo{
public static void main(String[] args) {
try {
System.out.println(Person.div(10/2));
}catch(Excepyion e) {
e.printStackTrace();
}
}
}
throw:抛出异常
public class Demo{
public static void main(String[] args) {
try {
throw new Exception("抛出");
}catch(Excepyion e) {
e.printStackTrace();
}
}
}
四 异常处理的执行顺序
1 try-catch-后续代码
A;有异常 try–>catch–>后续代码
B:无异常 try–》后续代码
2 try–catch–>finally–》后续代码
A:有异常: try–catch–>finally–》后续代码
B:无异常: try–>finally–》后续代码
ps:如果try或者catch中有return做为返回值 则方法的返回值会提前出结果 但是finally继续执行
五 异常分类
1 throwable:
异常Exception和错误Error的父类
2Error:
错误 程序当中无法靠自身解决的严重问题
3 Exception:
程序运行中的意外情况
4 异常的两个子类
A:检查异常:SqlException/ClassNotFoundException
B:运行异常:算术异常,数据转换异常 空指针,输入类型不匹配…
六 多重catch的注意事项
1 捕获异常的顺序自上而下 某个异常执行完 其他异常会直接跳过
2 异常类型的摆放顺序必须是先子类后父类