Java主要分为两种异常:
- checked Exception.可以简单理解为必须捕获的异常,强制抛出。
- unchecked Exception.也就是运行时异常,不用显式抛出,运行时有可能被抛出,client code 无法处理该类yichan。包括ArithmeticException、ClassCastException、 IndexOutOfBoundsException、ArrayIndexOutOfBoundsException,
StringIndexOutOfBoundsException、IllegalArgumentException、NumberFormatException、NullPointerException
Error、RuntimeException及其子类是unchecked Exception,其它的归为checked Exception。
Error是java自己的错误或者诸如内存耗尽等严重错误,是不可抗拒的,client无法处理,显然也没有必要去捕捉。 RuntimeException是你的程序有逻辑错误,是程序员自己的编码问题,尽量避免就是了。比如NullPointerException等。当遇到这种错误时,java将这个错误自动捕捉到,显示到concole里,然后继续运行。而checked exception如果不捕捉则会导致程序终止。
来源:oschina
链接:https://my.oschina.net/u/270164/blog/74026