java编程思想这本书上的一道练习题,题目是:定义三种新的异常类型,写一个类,在一个方法中抛出三种异常,在main中调用这个方法,仅用一个catch捕获三个异常
public class CatchMultiException {
public static void main(String[] args) throws Exception {
try {
test(2);
} catch (Exception e) {
if (e instanceof TestAException || e instanceof TestBException
|| e instanceof TestCException) {
e.printStackTrace();
} else {
throw e;
}
}
}
public static void test(int a) throws TestAException, TestBException,
TestCException {
if (a == 0) {
throw new TestAException();
}
if (a == 1) {
throw new TestBException();
}
if (a == 2) {
throw new TestCException();
}
}
}
class TestAException extends Exception {
private static final long serialVersionUID = 1L;
}
class TestBException extends Exception {
private static final long serialVersionUID = 1L;
}
class TestCException extends Exception {
private static final long serialVersionUID = 1L;
}
--------------
如果使用 JDK 7 的话,还可以这样:
public static void main(String[] args) {
try {
test(2);
} catch (TestAException | TestBException | TestCException e) {
e.printStackTrace();
}
}
1466

被折叠的 条评论
为什么被折叠?



