2014-06-30 186 views
1

我聽說可以登錄(或做其他事)同春例外在我的web應用程序,所以我不必在每一個手動插入塊日誌功能。異常記錄

有沒有人有與Spring總體日誌記錄的經驗?我只是想獲得通知時出現錯誤

+0

spring mvc在內部使用jsp權限,並且在那裏有聲明和編程的異常處理。只需在您的web.xml中使用適合您的Spring應用程序的declerative異常處理即可。 – vikeng21

回答

0

的ExceptionHandler是處理那些在Faces生命週期過程中引發的意外的異常中心點。不應將ExceptionHandler通知在應用程序啓動或關閉期間發生的任何異常。

有關默認實現的要求,請參閱規範散文文檔。異常可能會傳遞到的ExceptionHandler在以下兩種方法之一:

1)通過確保異常沒有被卡住,或者被捕獲並重新拋出。

該方法允許在JSF.6.2節中指定的ExceptionHandler工具對Exception執行操作。

2.)通過使用系統事件設施發佈封裝了異常的ExceptionQueuedEvent。

這種方法需要手動發佈ExceptionQueuedEvent,但允許存儲在事件有關異常的詳細信息。以下代碼是如何執行此操作的示例。

全局異常處理程序 - 異常處理是一個貫穿始終的問題,應該爲我們的應用程序中的所有切入點完成。我們已經研究過Spring AOP,這就是爲什麼Spring提供了@ControllerAdvice註解,我們可以用它來與任何類一起定義我們的全局異常處理程序。

在全球控制諮詢處理方法是基於控制器的異常處理程序的方法和使用時的控制器類是無法處理的異常是一樣的。

示例代碼

@ExceptionHandler(Exception.class) 
    public ModelAndView getExceptionPage(Exception e, HttpServletRequest request) { 
      request.setAttribute("errorMessageObject", e.toString()); 
      return model; 
    } 

**在這裏我們可以捕捉到基本異常類Exception.class或任何其他異常類。此外,我們可以拋出並捕獲我們自己定義的異常類。

+0

是否可以使用全局異常處理程序「裝備」我的應用程序?我沒有任何控制器或其他彈簧組件;我只想要一種全局異常處理(記錄所有錯誤(捕獲或未捕獲))? – Niko

+0

可能感興趣此鏈接 http://spring.io/blog/2013/11/01/exception-handling-in-spring-mvc –