1、Throwable 作为所有异常的超类
所有异常的间接父类
2、class Error extends Throwable
错误
3、class Exception extends Throwable
异常:Exception分为运行时异常(RuntimeException)和非运行时异常
4、class RuntimeException extends Exception
RuntimeException异常不应该通过try-catch的方式来处理,发生后代码不能继续执行,需立即终止
5、class 非RuntimeException extends Exception
运行时异常除了RuntimeException及其子类以外,其他的Exception类及其子类都属于可查异常
出现RuntimeException的时候,我们可以不处理。当出现这样的异常时,总是由虚拟机接管,出现运行时异常后,如果没有捕获处理这个异常(即没有try-catch),系统会把异常一直往上层抛,一直到最上层
如NullPointerException、IndexOutOfBoundsException、IllegalArgumentException等
非运行时异常是RuntimeException以外的异常,比如IOException、SQLException、FileNotFoundException等以及用户自定义的Exception异常。
如何定义异常在Java中,对于运行异常和非运行异常,也可以称为已检查和未检查的异常
- 已检查 -扩展java.lang.Exception 以获取可恢复的条件,尝试尝试捕获异常,并编译错误。
- 未检查 -扩展java.lang.RuntimeException 以恢复不可恢复的条件,例如编程错误,无需try-catch,运行时错误
如何判断定义哪种类型的异常:
- 如果客户端能够从异常中恢复,请使其成为已检查的异常。
- 如果客户端无法采取任何措施从异常中恢复,请将其设置为未经检查的异常
自定义未经检查的异常,请扩展java.lang.RuntimeException。对于未检查的异常,尝试捕获异常是可选的。
public class xxx extends RuntimeException{ public xxx(String message) { super(message); } }
创建自定义的检查异常,请扩展java.lang.Exception。对于检查的异常,您需要尝试捕获异常
public class xxx extends Exception{ public xxx(String message) { super(message); } }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)