1.异常:在程序运行期间发生的错误
2.Java运行期间如果有异常,会生成异常对象,该对象包含异常信息,提交给运行系统,这个过程
叫抛出异常。3.如果运行系统接收到异常对象会交给能处理的代码,叫捕获
4.异常的分类Throwable
Error Exception
捕获 RuntimeException
Error:系统的错误,我们处理不了
Exception:我们能处理的错误
RuntimeException:可以处理可以不处理
捕获:一旦抛出异常,必须捕获
5.自定义异常步骤:
1.继承Exception类,声明自己是异常类
2.在合适的地方实例并用throw抛出
3.在方法的声明部分用throws声明该方法可能会出现的异常
6.注意:重写方法抛出的异常必须与原方法一致或不抛出
7.重点try、catch、finally中的return问题//输出结果:try catch finally 3
//1.经过编译器检查,如果finally有return,则以finally的return为主,其他的都将失效,return之前的代码有效
//2.23行的return "4"与catch finally的return冲突,也就是说,
//在catch、finally中其中一个地方存在return,编译器就能检查,已符合方法的返回要求。
//3.catch和finally中,可同时存在return,编译能通过。但程序以finally中的return “3”为准,
//不会理睬catch中的return “2”,catch中return之前的代码仍然生效。
/*public static String get(){
int i = 0;
try {
System.out.println("try......");
int j = 2/i;
return "1";
} catch (Exception e) {
System.out.println("catch.....");
return "2";
}finally{
System.out.println("finally....");
return "3";
}
// return "4";
}*/
//输出结果:try finally 1
//程序中try内部没有异常的情况下,若有finally,且finally中没有return。
//若在try中遇到return,则先跳去执行finally中的代码,在回来执行try中return。
public static String get(){
try {
System.out.println("try……");
return "1";
} catch (Exception e) {
System.out.println("catch……");
} finally {
System.out.println("finally……");
}
return "2";
}