java-如何使用特定数据识别可抛出对象
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java-如何使用特定数据识别可抛出对象,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1705字,纯文字阅读大概需要3分钟。
内容图文
![java-如何使用特定数据识别可抛出对象](/upload/InfoBanner/zyjiaocheng/684/89fb18e6df4147e0a1b8da80f937ecf9.jpg)
我抓住了任何未捕获的异常
Thread.setDefaultUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() {
@Override
public void uncaughtException(Thread t, Throwable e) {
}
});
在方法内部,我想以不同于其他异常的方式处理以下异常:
Caused by: java.lang.NullPointerException
at com.company.si.stats.Statistics.hashString(Statistics.java:192)
at com.company.si.stats.Statistics.sendStatistics(Statistics.java:127)
我基本上想检查它是否是来自com.company.si.stats.Statistics.hashString的nullpointer异常
我怎样才能做到这一点?我不确定应该比较哪些throwable参数?
引发异常的代码不是我编写的,因此我无法更改任何内容.
重要的提示
我知道我解决这个问题的方法不是正确的方法.但是我无权访问引发异常的库,因此需要一种解决方法,直到该库中的错误被修复.选择答案是因为它满足了我的需求,而不是通常应满足的需求
解决方法:
免责声明
这是在评论中建议的,我认为将其添加为答案将是一个好主意,但请记住,这不是您应该这样做的方式,因此,请以此答案为例,说明如何不处理这种类型的问题.也可以随意投票.
您可以通过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的情况下,发现由该异常引起的错误可能真的很痛苦
>它不是可移植的(考虑将来更改库)
>这是不好的做法
内容总结
以上是互联网集市为您收集整理的java-如何使用特定数据识别可抛出对象全部内容,希望文章能够帮你解决java-如何使用特定数据识别可抛出对象所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。