异常类的编写1——了解java异常分类与使用场景

版权声明:如需转载请注明转载来源谢谢,创作不易如有侵权请联系[email protected] https://blog.csdn.net/u013693703/article/details/81091418

在我们系统中我们经常需要编写自己的异常类,那我们应该如果编写呢?今天我们就来看一下,话不多说上个类图展示一下

java的异常类设计

———————————————————————————————————————————————————————

Throwable是异常类的祖先,提供了异常类的基本的获取错误栈的深度,获取错误栈元素的本地方法,错误栈打印,序列化,message获取,Throwable的实例cause的获取,其中最重要的错误栈打印调用的为本地方法:

private native Throwable fillInStackTrace(int dummy);

———————————————————————————————————————————————————————

Error与Exception功能实现都是一样的,只是使用场景稍有不同

Error一般用于永远都不应该发生的错误,如jvm异常崩溃,资源耗尽等,这些应该再设计系统时进行评估给足资源,还有就是jvm的异常崩溃退出在程序运行时永远不会发生,而且Error在编译期间编译器是不会进行检查的,因为永远不应该发生Error,所以程序中也不应该对Error进行捕捉或者继续抛出。

———————————————————————————————————————————————————————

Exception为应用程序需要捕捉的错误,非RuntimeException子类下的Exception如果希望能够被抛出的话需要在方法前抛出此异常方法前加上throws ,此类exception称为checked exceptions

checked exception是必须要被处理的,即A方法抛出check exception,B方法调用了A方法,那么B必须要捕捉或者继续抛出

而继承了RuntimeException的异常希望抛出的话是不需要throw的,RuntimeException称为unchecked exceptions

unchecked exceptions一般是不强制调用者捕捉或者继续抛出,可以不用处理,因为此类错误一般是由于程序设计的问题产生的

nullpointexception,IndexOutOfBoundsException,java.lang.ArithmeticException: / by zero

猜你喜欢

转载自blog.csdn.net/u013693703/article/details/81091418