el Código
package com.dq;
public class ThreadTest implements Runnable
{
@Override
public void run()
{
throw new RuntimeException();
}
public static void main(String[] args)
{
ThreadTest task = new ThreadTest();
Thread thread = new Thread(task);
try
{
thread.start();
}
catch (Exception e)
{
System.out.println("捕获到异常");
}
}
}
Aplicación de los resultados
puede ser visto y no se ha ejecutado el contenido del bloque catch, ejecute y no una excepción, naturalmente, no captura
mejorar
trampa de excepción personalizada, implementa la interfaz UncaughtExceptionHandler
class MyExceptionHandler implements UncaughtExceptionHandler
{
@Override
public void uncaughtException(Thread t, Throwable e)
{
System.out.println("自定义异常处理器处理异常,线程名称" + t.getName() + " 异常:" + e);
}
}
Situado en el hilo principal sobre el manejador de excepción personalizada
public static void main(String[] args)
{
Thread.setDefaultUncaughtExceptionHandler(new MyExceptionHandler());
ThreadTest task = new ThreadTest();
Thread thread = new Thread(task);
thread.start();
}
Realizada como consecuencia de la mejora
de modo que el hilo principal excepción no se detecta a un manejador de excepción personalizada