簡體   English   中英

春季休息例外

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM