首先,我不确定这种行为究竟是什么原因,所以标题可能是错误的。
我有一个“MainClass”,它使用Method.invoke()
方法创建一个“SubClass”的新对象(因为有几个“SubClasses”都有相同的方法,如果你有更好的方法解决这个问题,我将不胜感激。由于invoke()
方法引发的异常需要被捕获,我周围有一个try {} catch () {}
。现在好像当其中一个“SubClasses”抛出一个错误并且它不是直接在try
块下面的代码中时,它不会捕获它,而是“MainClass”捕获它。
我不知道这是否是预期的行为,但我希望有一种方法可以防止这种情况发生。
示例:
new Gson().fromJson("Test",ArrayList.class);
块try
答案 0 :(得分:0)
显然问题不在于Gson。发生了什么事是
try {
new Gson().fromJson(...);
}
catch (Exception e) {
logThatError();
}
正确地捕获了Gson抛出的异常,但logThatError()
也导致了异常。