监控RuntimeException「建议收藏」

监控RuntimeException「建议收藏」在线程提前终止的最主要原因就是RuntimeException,由于这些异常表示出现了某种编程错误或者其他不可修复的错误,因此它们通常不会被捕获。它们不会在调用栈中逐层传递,而是默认地在控制台中输出栈追踪信息,并终止线程我们可以通过实现java.lang.Thread.UncaughtExceptionHandler接口来获取RuntimeException异常的信息。

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

RuntimeException 是那些可能在 Java 虚拟机正常运行期间抛出的异常的超类。可能在执行方法期间抛出但未被捕获的 RuntimeException 的任何子类都无需在 throws 子句中进行声明。

在线程提前终止的最主要原因就是RuntimeException,由于这些异常表示出现了某种编程错误或者其他不可修复的错误,因此它们通常不会被捕获。它们不会在调用栈中逐层传递,而是默认地在控制台中输出栈追踪信息,并终止线程

我们可以通过实现java.lang.Thread.UncaughtExceptionHandler接口来获取RuntimeException异常的信息。

举个栗子

将异常写入日志
public class MyDemo implements java.lang.Thread.UncaughtExceptionHandler{ 
   
    public void uncaughtException(Thread t,Throwable e){
        log.error(Level.SEVERE, "Thread terminated with exception:" + t.getName(), e);
    }
}

要为线程池中的所有线程设置一个UncaughtExceptionHandler,需要为ThreadPoolExecutor的构造函数提供一个ThreadFactory。
需要注意的是只有通过execute提交的任务,才能将它抛出的异常交给UncaughtExceptionHandler;而通过submit提交的任务,无论是抛出的未检查的异常还是已检查的异常,都将被认为是任务返回状态的一部分,如果一个submit提交的任务抛出异常而结束,则那个异常将被Future.get封装在ExecutionException中重新抛出

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/161454.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • sqlserver pivot函数(oracle行列转换函数)

    以学生表举个例子,展现学生的各门学科和成绩,我们先新建一张表:CreateTableStudents(Namevarchar(10),SubjectNvarchar(10),Scoreint)InsertintoStudentsSelect’Andy’,’Chiness’,round(60+40*rand(),0)UnionallSelect’Bur

    2022年4月13日
    143
  • python数字推盘_从零开始学编程做游戏:一个文科生策划的14周

    python数字推盘_从零开始学编程做游戏:一个文科生策划的14周点击”humansflee”按钮则人类移动一回合,点击”zombiesstalk”按钮则僵尸移动一回合。它们采取的寻路策略都是广度优先搜索。游戏不会结束,你可以在这个沙盒中给自己安排胜利条件。布置各种各样的场面看着它们行动,也还能支撑个半小时的乐趣,是到目前为止制作的可玩性最强的游戏……同样的,这个游戏也是一个具有充分扩展性的游戏。感染者会不会转化成僵尸?人类能不能拿到武器反击僵尸?僵…

    2022年10月30日
    0
  • rime android汉字,Rime输入法

    rime android汉字,Rime输入法Rime输入法的安卓版又叫同文输入法,是Rime输入法好几个版本中的一个,适合喜欢调校的人。界面比较简洁,也很小巧,功能就是输入,偏英文输入,支持调整颜色更改外观。Rime输入法简介RIME/中州韻輸入法引擎,是一個跨平臺的輸入法算法框架。基於這一框架,Rime開發者與其他開源社區的參與者在Windows、MacOSX、Linux、Android平臺上創造了不同的輸入法前端實現。Rime…

    2022年7月12日
    29
  • 谢惠民,恽自求,易法槐,钱定边编数学分析习题课讲义16.2.3练习题参考解答[来自陶哲轩小弟]…

    谢惠民,恽自求,易法槐,钱定边编数学分析习题课讲义16.2.3练习题参考解答[来自陶哲轩小弟]…

    2021年9月9日
    80
  • vs code必备插件_手机flash player插件

    vs code必备插件_手机flash player插件基础必备插件:1、ViewInBrowser在浏览器里预览网页必备。2、vscode-icons改变编辑器里面的文件图标。个人比较稀饭这个,其他的你们可以自行选择。3、SublimeTextKeymapandSettingsImporter这个名字挺长,说白了就是sublime的快捷键插件。由于以前我是用sublime这款编辑器的,所以换成vscode之后没有su…

    2022年9月21日
    0
  • yuicompressor压缩js的ant脚本

    yuicompressor压缩js的ant脚本<?xmlversion="1.0"encoding="UTF-8"?> <!–对指定目录下的所有js进行压缩,放入指定位置–> <projectname="jsbuild"default="build">    <propertyname="web.dir"location=&quo

    2022年7月18日
    11

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号