[英]spring rest exception in service
我正在將Spring Rest應用程序實現為Maven多模塊項目。 Web,服務和dao中作為層的控制器。
我在尋找服務層中任何異常的確切原因和堆棧跟蹤時遇到問題。 我沒有在服務方法中使用任何try catch塊。 相反,我只是拋出一個異常。 現在,當引發空指針異常時,全局異常處理程序將查找該異常。 它說為空,但不提供任何堆棧跟蹤。
我需要使用try catch塊嗎? 如果是,我將在所有服務方法中使用這些塊。
歡迎任何建議。
您的異常處理程序沒有顯示stacktrace,因為您沒有告訴它。 您的代碼是壞的和損壞的。
logger.error("Error: " + e.getMessage());
logger.error("Error [cause]: " + e.getCause());
使用getMessage()
來查看所遇到的異常是沒有用的。 NullPointerException
將其字符串"null"
作為其消息返回,這一點都無法幫助您解決問題。 日志記錄的原因一樣,將調用toString()
的方法cause
,這將不會是有用的任一。
處理異常的唯一方法是:
logger.error("Error", e);
這將正確記錄stacktrace,包括任何原因(您的代碼甚至沒有認為原因也可能是原因)。 您可以使用自定義消息代替“錯誤”,但這並不重要。
您可以使用@ExceptionHandler。 在這里,您將找到一些示例,並看到不需要修改當前代碼。 請記住使用Logger或放置System.out.printLn()來查看異常的堆棧跟蹤。 另外,也許您必須考慮調試方法以查看參數或方法是否為空值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.