簡體   English   中英

如何處理Java Web應用程序中的異常?

[英]How to handle exceptions in Java Web Applications?

我想以警告用戶發生的錯誤的方式處理我的異常。

我所知道的是:

servlet.java
private void registerUser(...){
    ...
    try{
        DAOUser daoUser = new DAOUser();
        daoUser.insert(user);
    catch(HibernateException he){
        ...
    }

DAOUser.java
public void insert(User user) throws HibernateException {
  ...
}

這是最好的方法嗎? 如果沒有,你會建議什么?

此致,Valter Henrique。

可以以不同方式處理異常。 在這種情況下,似乎異常導致用戶通知或錯誤消息。

現在,您顯示的示例不應拋出需要通知用戶的任何異常。 首先,驗證用戶輸入,不要使用異常使程序流程。

好吧,我們需要通過一些消息通知用戶。 這通常可以在控制器中使用存儲在屬性文件中的消息來完成。

您必須知道在哪里捕獲異常,在哪里拋出它以及在哪里記錄。 在這里,我首先要建議的是不要同時做兩件事,拋出和記錄。 如果您認為記錄是合適的,請不要拋出它。 如果您認為投擲是合適的,那么請不要記錄它。 如果按照這種方式,您將自動知道需要記錄哪一個以及要拋出哪一個。 這並不意味着一些例外會在沒有記錄的情況下消失。 不進一步拋出的方法,有責任記錄它。

另一件事是知道在哪里使用已檢查的異常以及在何處使用運行時。 根據說,拋出運行時異常的方法更容易使用。 但這並不意味着您應該始終使用運行時異常。 嗯,這也取決於。

我希望你明白我的觀點。

那么更好的方法是

  • 首先隔離服務/ DAO /控制器/視圖層。
  • 從服務中拋出異常,在控制器中處理它並相應地執行它。

我們的servlet wiki頁面很好地展示了錯誤消息

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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