Foros del Web » Programación para mayores de 30 ;) » Java »

Problema con excepciones para control de logs

Estas en el tema de Problema con excepciones para control de logs en el foro de Java en Foros del Web. Antes que nada saludos y gracias de antemano por su ayuda.... El problema que tengo es el siguiente: Estoy realizando un logger en una clase, ...
  #1 (permalink)  
Antiguo 27/10/2011, 09:13
Avatar de elunicode  
Fecha de Ingreso: noviembre-2005
Mensajes: 66
Antigüedad: 19 años
Puntos: 2
Problema con excepciones para control de logs

Antes que nada saludos y gracias de antemano por su ayuda....

El problema que tengo es el siguiente:

Estoy realizando un logger en una clase, para llamarla desde otras clases, esto para gestionar ir almacenando en un archivo log todas las excepciones que ocurran en mi sistema. Estuve realizando algunas pruebas al principio y funciona bien sin problemas aquí el código:

Código Java:
Ver original
  1. package filehandlerdemo;
  2.  
  3. import java.util.logging.*;
  4.  
  5. public class FileHandlerDemo {
  6.   private static final Logger logger = Logger.getLogger("FileHandlerDemo");
  7.  
  8.   public static void main(String[] args) throws Exception {
  9.     try {      
  10.       double resultado;
  11.       System.out.println("hola");
  12.       resultado = 2/0;      
  13.     }catch (Exception e){
  14.       FileHandler fh;
  15.       fh = new FileHandler("/home/usuario/Escritorio/errores.log",true);
  16.       fh.setFormatter(new SimpleFormatter());
  17.       logger.addHandler(fh);
  18.       logger.log(Level.SEVERE, "excepcion",e);
  19.     }
  20.     System.out.println("otro mensaje");
  21.   }
  22. }

Ahora bien, ya he creado una clase llamada logger y hasta aquí ningún problemas cuyo código es el siguiente:

Código Java:
Ver original
  1. package aplicacionescritorio;
  2. import java.util.logging.*;
  3.  
  4. public class clsLogger {
  5.   private static final Logger logger = Logger.getLogger("FileHandlerDemo");
  6.   private FileHandler archivo;
  7.  
  8.   public clsLogger() throws Exception
  9.   {
  10.     archivo = new FileHandler("/home/usuario/Escritorio/errores.log",true);    
  11.     archivo.setFormatter(new SimpleFormatter());    
  12.     logger.addHandler(archivo);
  13.   }
  14.  
  15.   public void reportar(Exception e) throws Exception{
  16.     logger.log(Level.SEVERE, "Error",e);  
  17.   }  
  18. }

El problema viene cuando intento llamar desde otro método que se encuentra en otra clase y es cuando me provoca un error, el cual es el siguiente:

Código Java:
Ver original
  1. int a;
  2.   int b;
  3.   int c;
  4.   String r;
  5.  
  6.   try {
  7.   a = Integer.parseInt(txtNum1.getText());
  8.   b = Integer.parseInt(txtNum2.getText());
  9.   c = a/b;
  10.   txtResultado.setText(String.valueOf(c));
  11.   }catch (Exception e){
  12.     clsLogger log = new clsLogger();
  13.     log.reportar(e);
  14.   }

El problema se provoca en la instrucción clsLogger log = new clsLogger(), con el mensaje siguiente:

unreported exception: java.io.IOException; must be caught or declared to be thrown

AYUDA POR FAVOR
  #2 (permalink)  
Antiguo 27/10/2011, 11:09
 
Fecha de Ingreso: enero-2008
Mensajes: 614
Antigüedad: 16 años, 10 meses
Puntos: 57
Respuesta: Problema con excepciones para control de logs

Significa que algun metodo lanza la excepcion IOException pero no la estas atrapando en ningun lugar

Por ejemplo, en la clase clsLogger estas diciendo que el metodo reportar puede lanzar una excepcion del tipo Exception. Pero cuando mandas llamar el metodo reportar en otra parte, no estas atrapando la excepcion. Desconozco si esta es la parte que te esta causando el error (no me puse a revisar bien el codigo)
  #3 (permalink)  
Antiguo 27/10/2011, 12:59
Avatar de elunicode  
Fecha de Ingreso: noviembre-2005
Mensajes: 66
Antigüedad: 19 años
Puntos: 2
Respuesta: Problema con excepciones para control de logs

Cita:
Iniciado por posman Ver Mensaje
Significa que algun metodo lanza la excepcion IOException pero no la estas atrapando en ningun lugar

Por ejemplo, en la clase clsLogger estas diciendo que el metodo reportar puede lanzar una excepcion del tipo Exception. Pero cuando mandas llamar el metodo reportar en otra parte, no estas atrapando la excepcion. Desconozco si esta es la parte que te esta causando el error (no me puse a revisar bien el codigo)
Corrijo el método reportar de la clase clsLogger debe ser como el siguiente y la excepción la estoy pasando como un parámetro de tipo Exception.

Código Java:
Ver original
  1. public void reportar(Exception e){
  2.     logger.log(Level.SEVERE, "Error",e);  
  3.   }

El problema sigue igual

Etiquetas: control, excepciones, logs, aplicaciones
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:52.