2011-05-29 13 views
5

Estaba trabajando en una tarea en Java, y me preguntaba si es posible saber qué objeto arrojó una excepción.Cómo obtener un objeto fuente de excepción

sé que si usted hace sus excepciones personalizadas, puede modificar el constructor y tener una referencia al objeto:

public class MyEx extends Throwable { 
    private MyObject object; 

    public MyEx(MyObject o){ 
     super(); 
    } 

    public MyObject getSource(){ 
     return object; 
    } 
} 

pero no sé si existe otra forma de detectar que el throwed excepción. ¿Sabes de otra manera?

Respuesta

4

Si lo que desea es ver de qué parte del código se genera una excepción, usted tiene la sencilla seguimiento de la pila. Usted obtiene esto llamando al printStackTrace() en una instancia de excepción.

Sin embargo, esto no le proporciona la instancia exacta del objeto que arrojó la excepción. Para esto, debe implementar una Excepción personalizada como la indicada. Tenga en cuenta que en algunos contextos no existe una instancia, como p. Ej. una excepción lanzada desde un método estático.

+2

También puede usar exception.getStackTrace() si desea hacer más con el seguimiento de la pila. – Koekiebox

Cuestiones relacionadas