Java中的异常处理:
代码的异常处理
1、核心关键字:try 、catch、finally;
2、三种结构:try …catch; try …catch …finally ;try …finally;finally可以有也可以没有,如果在try中找到异常,则在catch中进行匹配,最后输出finally中的内容;
java中异常处理流程:如图:
解释:在运行时出现异常,JVM会自动根据异常的类型实例化一个与之类型匹配的异常类对象,如果没有异常处理由JVM处理,输出异常信息,结束程序;有异常处理则交给异常处理:有finally语句先执行该语句,然后再进行catch匹配,匹配成功按照要求执行,没有成功则交给JVM处理,输出异常,结束程序。
为了避免程序的结束我们可以使用Exception来接收所有的异常
try{
b=10/0;
}catch(Exception e){
e.printStackTrace();
}
多异常的处理:
捕获范围小的异常要放在捕获范围大的异常的前面:
ArithmeticException是Exception的子类,要放在前面。
try{
b=10/0;
}catch(ArithmeticException e){
e.printStackTrace();
}catch(Exception e){
e.printStackTrace();
}
throw 与throws
throw主要是在方法的定义上使用,表示此方法中不进行异常处理,而是交给被调用处处理。
class Sum{
public static int add(int x,int y)throws Exception{
return x+y;
}
}
public class CeShi{
public static void main(String args[]){
try{
System.out.println(Sum.add(3,4));
}catch(Exception e){
e.printStackTrace();
}
}
}
assert
assert的功能是断言,程序执行到某一行之后,其结果与预期结果一样。