在链式异常中找不到符号
Cannot find symbol in the chained exception
在下面的程序中,当我们尝试获取 main exception
意味着导致程序第一个异常的异常时,它会给出类似这样的错误:cannot find symbol : e.getCause();
但在删除此语句后 System.out.println("Main Cause : " + e.getCause());
我们成功得到第一个异常。
class chain_demo {
static void demo() {
//create an exception
ArithmeticException e = new ArithmeticException("top Module");
//cuase an exception
e.initCause(new NullPointerException("Cause"));
//throw exception
throw e;
}
public static void main(String args[]) {
try {
demo();
}
catch(ArithmeticException e) {
//display top_level exception
System.out.println("Cautch : " + e);
}
//display cause exception
//getting error here
System.out.println("Main Cause : " + e.getCause());
}
}
所以,我怎样才能得到原因异常。
变量e
范围仅限于catch块
移动
System.out.println("Main Cause : " + e.getCause());
在 catch 块内例如
try {
demo();
}
catch(ArithmeticException e) {
//display top_level exception
System.out.println("Cautch : " + e);
System.out.println("Main Cause : " + e.getCause());
}
在下面的程序中,当我们尝试获取 main exception
意味着导致程序第一个异常的异常时,它会给出类似这样的错误:cannot find symbol : e.getCause();
但在删除此语句后 System.out.println("Main Cause : " + e.getCause());
我们成功得到第一个异常。
class chain_demo {
static void demo() {
//create an exception
ArithmeticException e = new ArithmeticException("top Module");
//cuase an exception
e.initCause(new NullPointerException("Cause"));
//throw exception
throw e;
}
public static void main(String args[]) {
try {
demo();
}
catch(ArithmeticException e) {
//display top_level exception
System.out.println("Cautch : " + e);
}
//display cause exception
//getting error here
System.out.println("Main Cause : " + e.getCause());
}
}
所以,我怎样才能得到原因异常。
变量e
范围仅限于catch块
移动
System.out.println("Main Cause : " + e.getCause());
在 catch 块内例如
try {
demo();
}
catch(ArithmeticException e) {
//display top_level exception
System.out.println("Cautch : " + e);
System.out.println("Main Cause : " + e.getCause());
}