`
奈落王
  • 浏览: 30411 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

关于线程的异常捕获

阅读更多
1,对于以前的线程可以设置默认的异常处理器
public class Test1 {

public static void main(String[] args) {
Task task = new Task();
    Thread.setDefaultUncaughtExceptionHandler(new MyExcetionHandler());
Thread t = new Thread(task);
t.start();
}
}

class Task implements Runnable {
public void run() {
throw new RuntimeException("运行异常");
}

}

class MyExcetionHandler implements Thread.UncaughtExceptionHandler {

public void uncaughtException(Thread t, Throwable e) {
         System.out.println(t.getName() + "发生异常被捕获:" + e.getMessage());
}

}
2,对于新的线程,可以针对线程设置专用的异常处理器
public class Test2 {

public static void main(String[] args) {
Executor executor = Executors.newCachedThreadPool(new ThreadFactory(){
public Thread newThread(Runnable r) {
Thread t = new Thread(r);
t.setUncaughtExceptionHandler(new MyExcetionHandler2());
return t;
}

});

executor.execute(new Task2());
}


}


class Task2 implements Runnable {
public void run() {
throw new RuntimeException("运行异常");
}

}

class MyExcetionHandler2 implements Thread.UncaughtExceptionHandler {

public void uncaughtException(Thread t, Throwable e) {
         System.out.println(t.getName() + "发生异常被捕获:" + e.getMessage());
}
分享到:
评论

相关推荐

    Java多线程之多线程异常捕捉

    本文将深入探讨Java多线程中的异常捕捉,以及如何有效地在多线程环境中处理异常。 首先,让我们明确一点:Java的多线程不允许未捕获的checked异常直接抛出。这意味着每个线程都必须负责处理自己产生的异常,而不是...

    delphi线程异常处理

    总之,Delphi线程异常处理涉及到对线程的创建、异常捕获、资源清理以及线程间的通信。正确处理线程异常能提高程序的稳定性和健壮性,同时减少用户遇到的问题,提升用户体验。理解并熟练应用这些概念对于开发高质量的...

    java 多线程异常处理

    Java多线程异常处理是Java编程中不可或缺的一部分,特别是在并发编程场景下,正确处理异常能够保证程序的稳定性和健壮性。本实验报告主要涵盖了Java异常处理机制、多线程概念与实现,以及多线程同步问题。 首先,...

    WPF程序全局异常捕获示例

    本示例将详细讲解如何在WPF应用程序中实现对UI线程、Task任务以及非UI线程的全局异常捕获。 首先,我们来看UI线程的异常捕获。在WPF中,UI线程负责更新用户界面和处理用户交互。当UI线程出现未处理的异常时,整个...

    UI界面多线程简单实现和线程捕获异常问题

    此外,可以使用`Thread.UnhandledException`事件来捕获线程级别的未处理异常,防止程序意外终止: ```csharp AppDomain.CurrentDomain.UnhandledException += (sender, e) => { // 记录或显示异常信息,然后关闭...

    android全局异常捕获 exception_global

    在Android开发中,全局异常捕获是一个至关重要的实践,它能确保应用在遇到未预期的错误时仍能保持稳定,并提供良好的用户体验。标题"android全局异常捕获 exception_global"和描述都指向了这个主题,表明我们将探讨...

    子线程任务发生异常,主线程事务如何回滚

    下面将从多线程编程的基础知识、线程池的使用、异常捕获三个方面进行阐述。 一、多线程编程基础知识 在 Java 中,存在两种线程模型:主线程和子线程。主线程是程序的入口点,而子线程是由主线程创建的辅助线程。...

    WPF全局异常捕获Demo,防止程序运行过程中出现异常崩溃

    本示例"**WPF全局异常捕获Demo**"旨在提供一种策略,确保在程序运行过程中能够有效地捕获和处理异常,从而防止程序因错误而意外终止。 首先,我们要理解WPF应用程序的生命周期,以及在何处设置全局异常处理。WPF...

    详解Java中多线程异常捕获Runnable的实现

    Java 多线程异常捕获 Runnable 实现详解 Java 多线程编程是一个非常重要的知识点,然而在多线程编程中,异常捕获是一个很大的挑战。本文主要介绍了 Java 中多线程异常捕获 Runnable 的实现,包括背景、工具、思路、...

    一个线程捕获另外一个线程的异常1---马克-to-win java视频

    一个线程捕获另外一个线程的异常1---马克-to-win java视频

    Visual C++源代码 23 如何使用主线程异常捕获错误

    Visual C++源代码 23 如何使用主线程异常捕获错误Visual C++源代码 23 如何使用主线程异常捕获错误Visual C++源代码 23 如何使用主线程异常捕获错误Visual C++源代码 23 如何使用主线程异常捕获错误Visual C++源代码...

    易语言线程结构异常处理

    通过理解并熟练运用这些知识点,开发者可以创建更加健壮和稳定的易语言程序,有效地处理线程异常,提高程序的容错性和可靠性。同时,深入理解线程管理、异常处理和底层内存操作也是提升编程技能的重要步骤。

    多线程异常处理.pdf

    在探讨多线程异常处理之前,首先要了解Java中的线程模型以及异常处理的基本概念。Java的多线程模型允许程序同时执行多个线程,以实现更高效的任务处理。每个线程都是独立执行其任务的执行路径,而异常处理是保证程序...

    Android 全局异常捕获

    全局异常捕获是指在应用的整个生命周期内,无论在哪个线程或者哪个函数中,只要发生未被捕获的异常,都能被一个统一的处理机制捕获并进行相应的处理。这样可以避免因为单一代码块的异常而导致整个应用崩溃,同时也为...

    Java 实例 - 多线程异常处理源代码-详细教程.zip

    2. **自定义异常处理**:通过实现`Thread.UncaughtExceptionHandler`接口并将其设置为线程的处理器,可以自定义线程异常的处理方式。例如: ```java thread.setDefaultUncaughtExceptionHandler(new Thread....

    自定义异常捕捉器

    2. **异常捕获**:一旦监听器检测到异常,它会立即停止当前操作,防止程序进一步崩溃。捕获异常通常使用try-catch语句块来实现。 3. **异常处理**:捕获到异常后,程序应该进行适当的处理。这可能包括记录异常信息...

    易语言线程结构异常处理.7z

    易语言提供了异常捕获和抛出的语法结构,允许程序员定义异常处理块,以便在出现错误时进行适当的恢复操作。 五、线程结构异常 线程结构异常通常指的是线程在执行过程中,由于非法操作或者资源冲突导致的问题,如...

    Delphi多线程的安全问题分析及解决

    4. **异常处理**:为了确保线程在异常情况下的安全,可以采用异常处理机制来捕获和处理异常,避免程序因未处理的异常而崩溃。 5. **线程池(Thread Pool)**:线程池可以有效管理线程资源,减少线程创建和销毁带来的...

    java线程异常

    为了确保线程异常的正确处理,通常会在`run()`方法内部进行try-catch-finally结构,或者使用`Thread.UncaughtExceptionHandler`来设定全局的未捕获异常处理器。 测试线程池(testThreadPoolExecutor)可能涉及编写...

    线程异常SEHHook

    线程异常SEHHook通常涉及到对这一机制的利用或篡改,以便在多线程环境中更有效地管理和捕获异常。 在Windows系统中,异常处理分为两个层次:硬件异常和软件异常。硬件异常通常由CPU检测到,如内存访问错误;而软件...

Global site tag (gtag.js) - Google Analytics