异常处理的五个关键字
try、catch、finally、throw、throws
int a = 1;
int b = 0;
//快捷键 CTRL+ALT+T
//假设要捕获多个异常:从小到大
try{ //try监控区域
System.out.println("a/b");
}catch(Exception e){ //catch(想要捕获的异常类型)捕获异常
System.out.println("程序出现异常,变量b不能为0");
}catch(Error){
}catch(Throwable t){
}finally{ //finally可以不需要 处理善后工作
System.out.println("finally");
}
/*-----------------------------------------------------------------*/
//假设这方法中,处理不了这个异常,方法上抛出异常
public static void main(String[] args){
try{
new Test().test(1,0);
}catch(ArithmeticException e){
e.printStackTrace();
}
}
//假设者方法中,处理不了这个异常,方法上抛出异常,增加throws ArithmeticException
public void test(int a,int b) throws ArithmeticException{
if(b==0){ //throw throws
throw new ArithmeticException(); //主动抛出异常,一般在方法中使用
}
}
自定义异常
//自定义 异常类
public class MyException extends Exception{
//传递数字大于10,抛出异常
private int detail;
public MyException(int a){
this.detail = a;
}
//toString:异常的打印信息
@Override
public String toString(){
return "MyException{"+"detail="+detail+"}";
}
}
//测试类
public class Test{
static void test(int a) throws MyException{
if(a>10){
throw new MyException(a); //抛出
}
System.out.println("ok");
}
}
public static void main(String[] args){
try{
test(1);
}catch(MyException e){
//可以增加一些处理异常的代码
System.out.println("MyException=>"+e);
}
}