异常处理机制
关键字
有五个:try、catch、finally、throw、throws
代码
package com.exception;
public class Test {
public static void main(String[] args) {
int a = 1;
int b = 0;
//假设要捕获多个异常:要从小到大!
try{//try 监控区域
if(b==0){// throw throws
throw new ArithmeticException();//主动的抛出异常
}
System.out.println(a/b);
//new Test().A();
}catch(Exception e){//catch(想要捕获的异常类型) 捕获异常
//System.out.println("程序出现异常喽,b不可以等于0哦!" );
System.out.println("Exception");
}catch(Error e){
System.out.println("Error");
}catch(Throwable t){//Exception要在最后面,不然会因为覆盖下面的二报错
System.out.println("Throwable");
} finally{//finally 处理善后工作
System.out.println("finally");
}
//finally可以不要, 但是比如IO流,资源,要用来关闭
}
//public void A(){B();}
//public void B(){A();}
}
package com.exception;
public class Test2 {
public static void main(String[] args) {
int a = 1;
int b = 0;
//Ctrl+Alt+T
try {
System.out.println(a/b);
} catch (Exception e) {
System.exit(666);//自己结束程序
e.printStackTrace();//打印错误的栈信息
} finally {
}
}
}
package com.exception;
public class Test {
public static void main(String[] args) {
try {
new Test().test(1,0);
} catch (ArithmeticException e) {
e.printStackTrace();
} finally {
}
}
//假设这方法中,处理不了这个异常。方法上抛出异常
public void test(int a,int b)throws ArithmeticException{
if(b==0){// throw throws
throw new ArithmeticException();//主动的抛出异常,一般在方法中使用
}
}
}