小编典典

您可能不想在任何例外情况下寄出邮件。JDK中有很多代码实际上依赖于异常才能正常工作。我认为您更感兴趣的是未捕获的例外。如果您正在捕获异常,则应在此处处理通知。

在桌面应用程序中,有两个地方需要担心这一点:事件调度线程(EDT)和EDT之外。在全局范围内,您可以注册一个实现的类java.util.Thread.UncaughtExceptionHandler,并通过进行注册java.util.Thread.setDefaultUncaughtExceptionHandler。如果异常结束到堆栈的底部,并且线程尚未在线程或ThreadGroup的当前线程实例上设置处理程序,则将调用此方法。

EDT具有处理异常的不同钩子。'sun.awt.exception.handler'需要使用零参数构造函数的类的“完全合格的类名”注册系统属性。此类需要一个实例方法handle(Throwable)完成您的工作。返回类型无关紧要,并且由于每次都会创建一个新实例,因此不要指望保持状态。

因此,如果您不关心哪个线程,则示例中发生的异常可能看起来像这样:

class ExceptionHandler implements Thread.UncaughtExceptionHandler {

public void uncaughtException(Thread t, Throwable e) {

handle(e);

}

public void handle(Throwable throwable) {

try {

// insert your e-mail code here

} catch (Throwable t) {

// don't let the exception get thrown out, will cause infinite looping!

}

}

public static void registerExceptionHandler() {

Thread.setDefaultUncaughtExceptionHandler(new ExceptionHandler());

System.setProperty("sun.awt.exception.handler", ExceptionHandler.class.getName());

}

}

将此类添加到某个随机包中,然后调用该registerExceptionHandler方法,您应该可以开始使用。

2020-09-15

java 中如何检测异常_如何检测Java中何时全局抛出了异常?相关推荐

  1. 应该手动抛出什么异常?RuntimeException?

    Java程序员应该手动抛出什么异常?不能抛出RuntimeException吧? 收藏帖子 回复 秦三行 结帖率 96.88% if(sectionCodeT!=null && !&q ...

  2. Spring事务抛出Exception异常不回滚

    今天有个业务逻辑流程为: 1.访客预约确认先更新预约状态为"预约确认" 2.调用http接口发短信.更新预约状态为"预约成功"等一系列操作 这里面有个问题,如果 ...

  3. java中子类可否抛出两个父类抛出的异常的子类_父类的多个构造方法各自抛出不同的异常,子类的构造方法应该抛出哪个/些异常?...

    [情况描述]如下代码,在父类中定义了两个构造方法,各自throws不同的异常.当定义子类时,IDE会提示需要显示定义构造方法来抛出父类构造方法的异常.很自然地认为应该抛出父类所有构造方法的异常,然而只 ...

  4. java 如何抛异常_如何在Java中抛出异常?

    有时我们可能需要重新抛出Java中的异常.如果catch块无法处理已捕获的特定异常,则可以重新抛出该异常.重新抛出表达式导致原始抛出的对象被重新抛出. 因为已经在发生重新抛出表达式的范围内捕获了异常, ...

  5. java方法区内存泄露_深入理解java虚拟机-第二章:java内存区域与内存泄露异常...

    2.1概述: java将内存的管理(主要是回收工作),交由jvm管理,确实很省事,但是一点jvm因内存出现问题,排查起来将会很困难,为了能够成为独当一面的大牛呢,自然要了解vm是怎么去使用内存的. 2 ...

  6. Java中主线程如何捕获子线程抛出的异常

    Java中主线程如何捕获子线程抛出的异常 参考文章: (1)Java中主线程如何捕获子线程抛出的异常 (2)https://www.cnblogs.com/jpfss/p/10272885.html ...

  7. java的接口怎么理解_如何理解Java 中的接口

    一.接口(Interface) 在JAVA编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明.一个类通过继承接口的方式,从而来继承接口的抽象方法.接口并不是类,编写接口的方 ...

  8. 受检异常 非受检异常_这样设计 Java 异常更优雅,赶紧学

    来源:Lrwinlrwinx.github.io/2016/04/28/如何优雅的设计java异常/ 导语 异常处理是程序开发中必不可少操作之一,但如何正确优雅的对异常进行处理确是一门学问,笔者根据自 ...

  9. async 打包异常_重新打包流中的异常

    async 打包异常 Java 8已有两年历史,但是仍然存在社区尚未为其开发好的解决方案库的用例,甚至边缘用例. 如何处理流管道中的检查异常就是这样一个问题. Stream操作接受的功能接口不允许实现 ...

  10. java面向字符的输入流_详细解读Java编程中面向字符的输入流

    字符流是针对字符数据的特点进行过优化的,因而提供一些面向字符的有用特性,字符流的源或目标通常是文本文件. Reader和Writer是java.io包中所有字符流的父类.由于它们都是抽象类,所以应使用 ...

最新文章

  1. 巧用CSS的alpha滤镜
  2. Design Pattern: Singleton 模式
  3. linux导入函数包失败,使用qsub运行shellscript时出现apos;文件意外结束apos;和apos;错误导入函数定义apos;错误 中国服务器网...
  4. TensorFlow基于minist数据集实现手写字识别实战的三个模型
  5. 蓝桥 BEGIN4 - Fibonacci数列
  6. 通信技术计算机通信方向专业,江西科技学院2014年招生通信工程(计算机通信方向)专业介绍...
  7. Python学习笔记:集合(set)
  8. ThreadLocal 解决多线程程序的并发问题+事务处理
  9. angular cli中的--flat参数
  10. python 学习导图
  11. 免密登录-python
  12. AntTweakBar with OpenGL
  13. Struts tag-初体验
  14. node安装以后npm下载失败全套处理方案
  15. 北京联合大学计算机学院在哪个校区,2021年北京联合大学有几个校区,大一新生在哪个校区...
  16. 设置sublime默认浏览器以及快捷键
  17. 图书管理系统(C SQL)
  18. 逝去的岁月,回忆的青春
  19. 业余时间决定了你的人生
  20. 桌面只显示计算机和回收站图标,win10系统重装桌面只显示回收站图标的解决方法...

热门文章

  1. 无线点菜服务器英文怎么拼,无线点菜系统(客户端和服务器端交互)
  2. html div边框宽度,边框的宽度
  3. java 图文混排_图文混排的几种实现方案
  4. 计算机专业动漫设计毕业论文,计算机动漫设计与制作专业毕业论文.doc
  5. php实现钟表,用html5实现一个简单的钟表外观
  6. Tomcat启动失败 staring tomcat server at localhost has encoutered a problem
  7. SQL Server 2019下载安装教程
  8. frm文件导入mysql_.frm文件怎么导入到数据库
  9. 纬度渐长率算法C语言,关于纬度渐长率.pdf
  10. EPP-域名映射(RFC5731翻译)