exception和runtimeexception的区别,异常的转换,异常在运行过程当中的分析程序员
1 exception和runtimeexception的区别分析数组
异常的超级父类是throwable,实现的2个子类是error和exception,error是错误类,这里不作分析。io
Exception下面有众多子类,就是众多异常。Exception异常主要分为两个类型,一个是runtimeException和它的子类,还有一种就是除此以外的异常类。exception
先分析runtimeexception以及它的子类,这个类型的异常的特色是没必要在方法中声明,调用者不须要知道异常的可能存在,也没必要去处理异常。缘由是这个类型的异常并非由程序的功能不完善或者程序自己形成的异常,而是由程序员在调用程序时因为本身的操做而致使的异常的发生,好比:数组角标越界异常。程序员在运行完程序后,得知异常的提示,能够立刻经过正确的调用去改正它。程序
除了runtimeexception以及它的子类之外的异常类,都须要在方法中声明,这类异常都是因为程序自己功能的不完善,须要提醒调用者可能会出现的异常,这样的异常怎么去处理会在异常的运行过程的分析中提到。方法
2异常的转换im
异常的转换代码体现是在经过try catch语句捕获异常后并无在catch的语句里处理该异常,而是继续以新的异常抛出,抛出的异常由原来的异常转换为另外一种异常来等待处理。error
代码:项目
Try{}catch(Exception e){throw new Exception(“这里是转换后的异常”)}异常
异常的转换一般用在这样的需求下:你去atm上取钱,发现钱出的少了,你打电话给银行,银行确定不会立马来处理这个异常,这时,你须要把你的异常转换下,你打电话告诉银行,钱出的多了,银行会立马来处理这个异常。这个例子就是异常的转换。
3异常在运行过程当中的分析
异常能够在方法中声明抛出,也能够在语句中抛出。
在语句中抛出异常,那么这个语句所在的方法就接到了这个异常,方法就有2个选择:继续抛出或者处理,抛出就在方法上抛出便可,处理的话用try,catch对抛出异常的语句处理便可。方法若是继续抛出,那么调用这个方法的调用语句所在的方法就会接住这个异常,调用者一样有上述的两个选择。若是最后的主方法也没有处理,那么异常就会体如今项目,做品上。