java中如何一次抛出多个异常
百度搜索圈T社区 免费行业视频教程
www.aiquanti.com
基本思路就是定义三个类,继承异常的父类,然后在需要抛出异常的地方,throws一下就可以了,示例如下:
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 {//继承父类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;
}
Java是不允许同时抛出多个异常的,一个java方法中只能有一个异常栈,最后一次捕获抛出的异常会覆盖前面的异常。
当然也有奇淫伎俩,你做一个封装类异常把每次抛的异常装起来一次抛出。但我不知道这样的使用场景是什么。