Error通常是灾难性的致命错误 是程序无法控制和处理的
Exception有程序逻辑错误引起的
捕获异常:try、catch、finally
public class ExceptionTest {
public static void main(String[] args) {
try{
System.out.println(1/0);
}catch(ArithmeticException e){
System.out.println(e.getMessage());
}finally {
System.out.println("finally");
}
}
}
声明、抛出异常:throws、throw
1、可以通过 throws 关键字在方法上声明该方法要拋出的异常,然后在方法内部通过 throw 拋出异常对象
2、当一个方法产生一个它不处理的异常时,那么就需要在该方法的头部声明这个异常,以便将该异常传递到方法的外部进行处理。使用 throws 声明的方法表示此方法不处理异常
3、子类方法声明抛出的异常类型应该是父类方法声明抛出的异常类型的子类或相同,子类方法声明抛出的异常不允许比父类方法声明抛出的异常多
public class ExceptionTest {
public static void main(String[] args) {
try {
new ExceptionTest().test(1,0);
} catch (ArithmeticException e) {
e.printStackTrace();
}
}
public void test(int a,int b) throws ArithmeticException{//这里不声明程序会报错
if(b==0){
throw new ArithmeticException();//主动抛出异常 一般在方法中使用
}
}
}
public class MyException extends Exception {
private int num;
public MyException(int a){
this.num=a;
}
//异常提示消息
@Override
public String toString() {
return "MyException+{"+num+"}";
}
}
原文:https://www.cnblogs.com/hklol/p/14672990.html