Exception 下面除了RuntimeException,其他都属于check异常
RuntimeException(运行时异常)是指因设计或实现方式不当而导致的问题.
说白了,就是程序员造成的,程序员小心谨慎是完全可以避免的异常.比如,事先判断对象是否为null就可以避免NullPointerException异常,事先检查除数不为0就可以避免ArithmeticException异常;
特点:
这种异常Java编译器不会检查它,也就说程序中出现这类异常的时候,即使不处理也没有问题,但是一旦出现异常,程序将异常终止,若采用异常处理,则会被相应的程序执行处理.
public class TestException {
public static void div(int a, int b) throws ArithmeticException{
int c = a/b;
}
public static void main(String[] args) {
try{
div(10,0);
}
catch(ArithmeticException e){
String msg = e.getMessage();
System.out.println(msg);
}
}
}
ArithmeticException本来就属于runtime 异常, 运行时异常编译时不能发现,只能到运行时才能发现,需要用try-catch 来处理。
check异常则是,编译时就发现的,必须程序员自己处理。