java 如果有两种异常: Exception1 和Exception2 在 try catch ()该怎么写

为什么是 这样的 try {
} catch (InstantiationException | IllegalAccessException e) {
e.printStackTrace();
}而不是try {
} catch (InstantiationException || IllegalAccessException e) {
e.printStackTrace();
}

|| 和 | 都是表示“或”,区别是 || 只要满足第一个条件,后面的条件就不再判断,而|要对所有的条件进行判断
用在这个地方,如果用 || 的话,那么前面InstantiationException如果出现异常,那么就不会对IllegalAccessException 进行捕捉了,所以得用 | ,以防止漏掉异常追问

为什么用后者,编辑器就报语法错误

追答

我还是建议你这么写吧,分开捕捉分开处理

try {

} catch (InstantiationException e1) {
e1.printStackTrace();
} catch (IllegalAccessException e2) {
e2.printStackTrace();
}

平时还是用这么情况居多,上面那种只是理论上基本没用过

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-01-28
try是用来监视它所在的程序块是否发生异常,如果发生异常就抛出它。对于系统产生的异常或程序块中未用try监视所产生的异常,将一律将java运行系统自动抛出它
相似回答