在跟踪Java中NullPointerException
的根本原因时是否有任何可接受的最佳实践/策略,特别是在涉及线程时?
后台:我有一个使用Apache的HttpClient
4.2的线程应用程序,我们不时会看到在调用{{1}时出现的NullPointer似乎是什么执行方法。 (“似乎是什么”,因为返回的值只是HttpClient
。)我知道所有线程都使用相同的null
共享相同的HttpClient
(感谢PoolingClientConnectionManager
,打印参考文件),但似乎我们仍然在库中得到与线程相关的错误(可能是由于我们做错了)。虽然我很想找到解决这个特定问题的方法,但我对找到System.out.println(httpClient)
s的根本原因的一般方法更感兴趣 - 就像我说的那样,特别是对于线程 ,如果异常在库中被深深地引入,甚至更多。
答案 0 :(得分:2)
如果第三方库抛出异常或转换它们,您可以将UncaughtExceptionHandler附加到线程。 This也可能有所帮助。
UPD:只是一个建议。是否可以使用自定义类加载器替换标准java异常类?