免责声明
这是在评论中建议的,我认为将其添加为答案将是一个好主意,但请记住,这不是您应该这样做的方式,因此,请以此答案为例,说明如何不处理这种类型的问题.也可以随意投票.
您可以通过looking at its stack trace或至少在第一个堆栈跟踪元素中检查异常的来源.
Thread.setDefaultUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() {
@Override
public void uncaughtException(Thread t, Throwable e) {
StackTraceElement[] stackTrace = e.getStackTrace();
if (e instanceof NullPointerException &&
stackTrace != null && stackTrace.length >= 0 &&
"Statistics.java".equals(stackTrace[0].getFileName()) &&
"hashString".equals(stackTrace[0].getMethodName()) &&
192 == stackTrace[0].getLineNumber()) {
// Handle your exception here.
}
}
});
您不应该这样做的原因:
>真的很丑
> hashString方法的任何更改将使此方法无用
>因为妈妈这么说
>统计信息类的任何更改都将使它无用
>在2或4的情况下,发现由该异常引起的错误可能真的很痛苦
>它不是可移植的(考虑将来更改库)
>这是不好的做法