捕获调用方法中的嵌套错误 Java
Catching nested errors in invoked methods Java
首先我不太确定这种行为的确切原因是什么,所以标题可能是错误的。
我有一个 "MainClass",它通过使用 Method.invoke()
方法创建 "SubClass" 的新 Object(使用 a 是因为有几个 "SubClasses"所有人都有相同的方法,如果您有更好的方法来解决这个问题,我将不胜感激)。由于需要捕获 invoke()
方法抛出的异常,因此我在其周围设置了 try {} catch () {}
。现在看来,当 "SubClasses" 之一抛出错误并且它不直接在 try
块下面的代码中时,它不会捕获它,而是 "MainClass" 捕获它。
我不知道这是否是预期的行为,但我希望有一种方法可以防止这种情况发生。
示例:
- MainClass调用SubClass的方法
- 方法尝试在
try
块中执行此操作 new Gson().fromJson("Test",ArrayList.class);
- MainClass 捕获异常
显然问题不在于 Gson。发生的事情是
try {
new Gson().fromJson(...);
}
catch (Exception e) {
logThatError();
}
正确捕获了 Gson 抛出的异常,但 logThatError()
也引发了异常。
首先我不太确定这种行为的确切原因是什么,所以标题可能是错误的。
我有一个 "MainClass",它通过使用 Method.invoke()
方法创建 "SubClass" 的新 Object(使用 a 是因为有几个 "SubClasses"所有人都有相同的方法,如果您有更好的方法来解决这个问题,我将不胜感激)。由于需要捕获 invoke()
方法抛出的异常,因此我在其周围设置了 try {} catch () {}
。现在看来,当 "SubClasses" 之一抛出错误并且它不直接在 try
块下面的代码中时,它不会捕获它,而是 "MainClass" 捕获它。
我不知道这是否是预期的行为,但我希望有一种方法可以防止这种情况发生。
示例:
- MainClass调用SubClass的方法
- 方法尝试在
try
块中执行此操作new Gson().fromJson("Test",ArrayList.class);
- MainClass 捕获异常
显然问题不在于 Gson。发生的事情是
try {
new Gson().fromJson(...);
}
catch (Exception e) {
logThatError();
}
正确捕获了 Gson 抛出的异常,但 logThatError()
也引发了异常。