抛出多个异常

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();
        }
    }

 

转自:

http://bbs.csdn.net/topics/370216093

posted @ 2016-07-20 21:48  water-droplet  阅读(662)  评论(0编辑  收藏  举报