2017-06-12 15 views
0

傳播異常消息給呼叫者方法的catch塊我有一個方法abc無法在Java

method abc { 
    try { 
     // something 
    } 
    catch(Exception e) { 
     throw new AppException("There is an app error", e); 
    } 
    finally { } 
} 

此方法由法x另一類獲取調用:

method x { 
    try { 
     abc(); 
    } 
    catch(Exception e) { 
     e.getMessage(); 
    } 
} 
  • 自定義消息"There is an app error"沒有傳播到方法x

  • e.getMessage()即將爲null

  • 欲定製的消息傳遞給呼叫者catch

+1

請添加Exception的完整堆棧跟蹤。 – Berger

+2

您可能想要改進[格式](https://stackoverflow.com/help/formatting),以便您的問題變得可讀。 – mp911de

+3

請顯示* real *代碼而不是僞代碼 - 提供[mcve]以便我們可以重現問題。 –

回答

0

這裏是一個工作示例。我故意拋出新SampleException(「樣品異常錯誤消息」):

package com.chocksaway; 

class SampleException extends Exception { 
    SampleException(String message) { 
     super(message); 
    } 

} 

public class ThrowException { 
    private void process() throws SampleException { 
     throw new SampleException("Sample Exception Error message"); 
    } 

    public static void main(String[] args) { 
     ThrowException throwException = new ThrowException(); 

     try { 
      throwException.process(); 
     } catch (SampleException e) { 
      e.printStackTrace(); 
     } 
    } 
} 

輸出,當你運行的是:

com.chocksaway.SampleException: Sample Exception Error message 
at com.chocksaway.ThrowException.process(ThrowException.java:12) 
at com.chocksaway.ThrowException.main(ThrowException.java:19) 

「樣本異常錯誤消息」傳遞給SampleException(字符串消息)構造函數,它被傳遞給例外超類

+0

是的...我得到了這個...謝謝:) – user3932685