exception和runtimeexception的区别,异常的转换,异常在运行过程中的分析

exception和runtimeexception的区别,异常的转换,异常在运行过程中的分析

1 exception和runtimeexception的区别分析

异常的超级父类是throwable,实现的2个子类是error和exception,error是错误类,这里不做分析。

Exception下面有众多子类,就是众多异常。Exception异常主要分为两个类型,一个是runtimeException和它的子类,还有一种就是除此之外的异常类。

先分析runtimeexception以及它的子类,这个类型的异常的特点是不必在方法中声明,调用者不需要知道异常的可能存在,也不必去处理异常。原因是这个类型的异常并不是由程序的功能不完善或者程序本身造成的异常,而是由程序员在调用程序时由于自己的操作而导致的异常的发生,比如:数组角标越界异常。程序员在运行完程序后,得知异常的提示,可以马上通过正确的调用去改正它。

除了runtimeexception以及它的子类以外的异常类,都需要在方法中声明,这类异常都是由于程序本身功能的不完善,需要提醒调用者可能会出现的异常,这样的异常怎么去处理会在异常的运行过程的分析中提到。

2异常的转换

异常的转换代码体现是在通过try catch语句捕获异常后并没有在catch的语句里处理该异常,而是继续以新的异常抛出,抛出的异常由原来的异常转换为另一种异常来等待处理。

代码:

Try{}catch(Exception e){throw new Exception(“这里是转换后的异常”)}

异常的转换通常用在这样的需求下:你去atm上取钱,发现钱出的少了,你打电话给银行,银行肯定不会立马来处理这个异常,这时,你需要把你的异常转换下,你打电话告诉银行,钱出的多了,银行会立马来处理这个异常。这个例子就是异常的转换。

3异常在运行过程中的分析

异常可以在方法中声明抛出,也可以在语句中抛出。

在语句中抛出异常,那么这个语句所在的方法就接到了这个异常,方法就有2个选择:继续抛出或者处理,抛出就在方法上抛出即可,处理的话用try,catch对抛出异常的语句处理即可。方法如果继续抛出,那么调用这个方法的调用语句所在的方法就会接住这个异常,调用者同样有上述的两个选择。如果最后的主方法也没有处理,那么异常就会体现在项目,作品上。

你可能感兴趣的:(exception和runtimeexception的区别,异常的转换,异常在运行过程中的分析)