我的项目中有一个NullPointerException,我想评估这个问题的严重性。 在线程完成它的任务之前抛出exception,无论如何将会死亡。 我的代码没有抓住这个例外,所以线程已经死了。
这是一个简单的模拟情况:
public class Test extends Thread { public static voID main(String[] args) throws InterruptedException { Test thread = new test(); thread.start(); while(true) { System.out.println("I'm still here!"); Thread.sleep(1000); } } public voID run() { String s = null; int len = s.length(); // causes NullPinterException } }
我的问题是:现在会发生什么事情发生在这个可怜的线程? 它的linux文件描述符被释放了吗? 在这种types的代码中是否会出现任何稳定性或内存问题?
我可以让Visual Studio在用户定义的C ++exception中断开吗?
linux上来自共享对象(.so)的例外情况
在使用java web start实现自动更新桌面应用程序时出现AWTPermissionexception
由于EINTR epoll_wait失败,该如何解决?
在命令提示符下无法捕获KeyboardInterrupt两次?
使用Delphi删除@R_301_5087@防火墙规则(例外)
如何在这种情况下保护代码免受崩溃
在这个exception消息中引用了什么“配额”:没有足够的配额可用于处理此命令
SEHexception代码中位31和30的含义是什么?
什么错误/exception触发@R_301_5087@错误报告?
处理与任何其他终止的线程没有什么不同。 之前发生的一件事就是根据规则(特定的Thread , ThreadGroup ,所有线程)搜索一个UncaughtExceptionHandler ,但除此之外,正常的清理过程如下所示。 当一个线程被一个未被捕获的异常终止时,与“正常”终止相比,系统资源(取决于Thread实现)或内存问题没有特定的后果。
这根本不是关于线程的。 看看你的代码:
String s = null; int len = s.length();
当你调用s.length() , s确实是null ,导致NullPointerException 。 给s分配一些值,你会得到它的长度。
总结以上是内存溢出为你收集整理的发生了什么事在Linux死亡Java线程?全部内容,希望文章能够帮你解决发生了什么事在Linux死亡Java线程?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)