Java问题中的一个catch代码块捕获多个异常,多个异常具有父子关系 40

一个catch代码块捕获多个异常时,如catch(ClientProtocolException|IOExceptione),其中ClientProtocolExcept... 一个catch代码块捕获多个异常时,如catch(ClientProtocolException | IOException e),其中ClientProtocolException 是IOException 的子类,为何这样写编译不通过呢? 展开
 我来答
龘Mac
2018-12-11 · TA获得超过305个赞
知道小有建树答主
回答量:450
采纳率:77%
帮助的人:40.4万
展开全部

catch可以捕捉多个异常,每个捕捉一个,不能这样写或,应该写两个catch,且先捕捉子类,这样就对了,如图

1997095
2020-02-16 · TA获得超过136个赞
知道答主
回答量:54
采纳率:100%
帮助的人:20.9万
展开全部

自 JDK 1.7 开始,Java 允许用一个 catch 来捕获多个异常,但是这多个异常必须是平级关系,不能是父子关系。所谓平级,就是说他们的继承等级是一致的,就是说捕获的多个异常必须有相同数量的父类,例如下面的代码就是用一个 catch 捕获多个异常,其中发生的异常为ArrayIndexOutOfBoundsException(数组索引越界异常):

import java.awt.HeadlessException;

public class ExceptionTest {

public static void main(String[] args) {

int[] arr =new int[2];

try {

System.out.println(arr[2]);

} catch (ArrayIndexOutOfBoundsException | StringIndexOutOfBoundsException | HeadlessException e) {

e.printStackTrace();

}

}


}

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式