2013-10-11 38 views
1

處理例外,我有一個Servlet。Servlet中

public class MyServlet extends HttpServlet 
{ 
    protected void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException 
    { 
     try 
     { 
     CallSomeMethodInBean(); 
     } 
     catch(Exception e) 
     { 
     //What to do here? 
     } 
    } 
} 

而在我的豆,我有CallSomeMethodInBean()方法

public String CallSomeMethodInBean() throws Exception 
{ 
try 
    { 
    //Try something 
    } 
    catch(Throwable e) 
    { 
    throw new Exception(e); 
    } 
} 

在我web.xml,我已經配置錯誤頁面,如果java.lang.Exception被拋出。

<error-page> 
    <exception-type>javax.lang.Exception</exception-type> 
    <location>/WEB-INF/pages/errorPage.jsp</location> 
</error-page> 

由於doPost()方法正在調用CallSomeMethodInBean()方法,其拋出異常,我 需要以圍繞CallSomeMethodInBean方法與try catch塊和需要趕上 異常。

無論發生什麼異常,CallSomeMethodInBean中的bean都通過 web.xml配置處理。所以,我應該在doPost()方法處理?只需編寫日誌消息?

回答

0

如果你不需要一些特定的錯誤處理(如固定對象的狀態等)中顯示這種情況下和錯誤頁面是夠你,只是重新拋出,或者漁獲物和忽略。

1

在這種情況下,我會重新考慮你的bean。接住一個Throwable的意思是「我可以處理任何問題」,但你的異常處理代碼只是包裝的Throwable的成檢查異常。那就是每個想要使用你的bean的其他組件都必須包裝try-catch代碼。如果您無法處理bean中檢查到的異常,請考慮將它們包裝到運行時異常中並重新拋出它們。

例外應僅適用於特殊情況下使用。捕捉Throwable並聲明「拋出異常」被認爲是不好的做法。只聲明那些可以有意義處理的異常。只抓住那些你知道如何處理它們的例外。