VademécumVademécum\Excepciones [exceptions]

Excepciones [exceptions]

Un thread puede lanzar una excepción y capturarla o no. Si el thread no la captura, la excepción sale fuera del método run().

A un thread le podemos asociar un manejador de excepciones no capturadas, manejador que se llama cuando una excepción se sale del método run() sin haber sido capturada.

class Problematica

class Problematica extends Thread {

      private final int n;

 

      public Problematica(int n) {

            this.n = n;

      }

 

      public void run() {

            int resultado = 100 / n;

      }

}    

class Problemas

import java.lang.Thread.UncaughtExceptionHandler;

 

public class Problemas {

      public static void main(String[] args) {

            UncaughtExceptionHandler eh = new Manejador();

            Problematica p = new Problematica(0);

            p.setName("tarea problemática");

            p.setUncaughtExceptionHandler(eh);

            p.start();

      }

}    

class Manejador

import java.lang.Thread.UncaughtExceptionHandler;

 

class Manejador implements UncaughtExceptionHandler {

      public void uncaughtException(Thread thread, Throwable e) {

            System.err.println(thread.getName() + ": " + e);

      }

}    

> java Problemas

tarea problemática: java.lang.ArithmeticException: / by zero

 

 

principio
principio