解答一下有关JAVA异常类的问题?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解答一下有关JAVA异常类的问题?相关的知识,希望对你有一定的参考价值。
(1)是否可以将try…catch语句中catch捕获的异常更改为Exception?(2)是否可以将try…catch语句中catch捕获的异常更改为java.io.IOException?问题参照图中代码,最好能简要说明一下
问题(1)可以改为Exception
问题(2)示情况而定是否可以改为IOException
原因,原语句中的try...catch..的语义是在try里面的两行语句中捕获可能抛出的DangerException异常并加以处理,
(1). Exception是DangerException的父类,替换后语义变为了在try里面的两行语句中捕获可能抛出的Exception异常并加以处理,语义是正确的;
(2). IOException不确定是不是DangerException的父类,替换后语义变为了在try里面的两行语句中捕获可能抛出的IOException异常并加以处理,语义不一定正确,如果IOException是DangerException的父类,就是正确的,否则是错误的(在try里面没有IOException的类型可能被抛出),在编译时会报错(Exception 'java.io.IOException' is never thrown in the corresponding try block)
都不可以.
无论是用Exception,还是用IOException ,直接替换原来代码中的 DangerException ,会报编译错误.因为 DangerException 是一个自定义异常,并且定义了一个toShow()方法,无论是Exception 还是 IOException 类 都是没有这个方法的,所以直接替换是一定会报错的
以上是关于解答一下有关JAVA异常类的问题?的主要内容,如果未能解决你的问题,请参考以下文章
客户端调用web Service时抛出 java.lang.reflect.InvocationTargetException 异常