2013-07-18 88 views
-2

這是我的代碼。我已經覆蓋了toString()方法。因此,當打印對象e時,必須調用重寫的方法。但我沒有看到被調用的方法。爲什麼toString方法顯示錯誤?

public static void main(String[] args) { 

     try 
     { 
      String name="foo"; 
      int a =Integer.parseInt(name); 
     }catch (NumberFormatException e) 
     { 
      System.out.println(e); 
     } 

    } 
    public String toString() 
    { 
     return "err"; 
    } 

} 
+3

您的代碼不會執行任何會調用** your **'toString()'的操作。這是你的完整代碼嗎? –

+5

這段代碼沒有意義。你想做什麼?我建議你得到一本Java書,最重要的是:閱讀它。 – m0skit0

+2

重寫的'toString'適用於_your_類,而不是'NumberFormatException' – DannyMo

回答

0

你已經覆寫toString你所做的任何課程。但是編寫System.out.println(e);將暗中調用NumberFormatException類中的toString方法,而不是在您的類上。

爲什麼你試圖重寫toStringNumberFormatException,無論如何? System.out.println(e.getMessage());甚至e.printStackTrace();有什麼不對?

+0

我只是想知道toString()方法何時會在何處被調用。我的培訓師困惑了我。謝謝你的回答。我使用getMessage()和printStackTrace()並且得到了很好的結果@rgettman – user1870724