捕获调用的方法Java中的嵌套错误

时间:2015-07-17 15:59:55

标签: java exception invoke

首先,我不确定这种行为究竟是什么原因,所以标题可能是错误的。

我有一个“MainClass”,它使用Method.invoke()方法创建一个“SubClass”的新对象(因为有几个“SubClasses”都有相同的方法,如果你有更好的方法解决这个问题,我将不胜感激。由于invoke()方法引发的异常需要被捕获,我周围有一个try {} catch () {}。现在好像当其中一个“SubClasses”抛出一个错误并且它不是直接在try块下面的代码中时,它不会捕获它,而是“MainClass”捕获它。

我不知道这是否是预期的行为,但我希望有一种方法可以防止这种情况发生。

示例:

  1. MainClass调用SubClass
  2. 的方法
  3. 方法尝试在new Gson().fromJson("Test",ArrayList.class);
  4. 中执行此操作try
  5. MainClass捕获异常

1 个答案:

答案 0 :(得分:0)

显然问题不在于Gson。发生了什么事是

try {
    new Gson().fromJson(...);
}
catch (Exception e) {
    logThatError();
}

正确地捕获了Gson抛出的异常,但logThatError()也导致了异常。