2011-05-29 38 views
5

我正在研究Java中的assigment,我想知道是否有可能知道哪個對象拋出異常。如何獲取異常源對象

我知道,如果你讓你自定義異常,你可以修改的構造,並有對象的引用:

public class MyEx extends Throwable { 
    private MyObject object; 

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

    public MyObject getSource(){ 
     return object; 
    } 
} 

,但我不知道是否存在追趕誰扔的另一種方式例外。你知道其他方式嗎?

回答

4

如果你只是想看看從中拋出異常的代碼的一部分,你有簡單的堆棧跟蹤。您可以通過在例外情況下調用printStackTrace()來獲得此信息。

但是,這並不會給你拋出異常的確切對象實例。爲此,您必須實現像您所示的自定義異常。請注意,在某些情況下,不存在例如實例的事物,例如,從靜態方法拋出的異常。

+2

如果您想更多地使用堆棧跟蹤,還可以使用exception.getStackTrace()。 – Koekiebox 2011-05-30 06:37:49