我有以下情况。
public void foo() throws BadFooException, IOException{
try{
..........
} catch(ArrayIndexOutOfBoundException e) {
throw new BadFooException(e);
} catch(ArithmeticException e) {
throw new BadFooException(e);
}
}
此处BadFooException
是一个扩展Exception
的类。但是我的愿望BadFooException
只能抓住
ArrayIndexOutOfBoundException
和
ArithmeticException
不是其他例外。我总是抓住这两个异常并抛出我想要的异常。但有什么办法,所以只有这两个异常会自动抛出我想要的异常,但是其他异常会被单独抛出吗? 提前致谢。
答案 0 :(得分:1)
你要问的很清楚...但是如果你想要结合几个例外,为了节省一些打字工作,你可以使用:
public void foo() throws CustomException1, OtherException {
try {
// stuff (that can throw Exception1, Exception2 and OtherException)
} catch (Exception1 | Exception2 ex) {
throw new CustomException1(ex);
}
}
因此在它们之间有一个垂直条。
据我所知,没有更优雅的方法可以做到这一点。