【问题标题】:How to handle exceptions in Java Web Applications?如何处理 Java Web 应用程序中的异常?
【发布时间】:2011-04-06 11:00:44
【问题描述】:

我想以某种方式处理我的异常,以警告用户发生的错误。

我知道是这样的:

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 {
  ...
}

这是最好的方法吗?如果没有,你有什么建议?

最好的问候, 瓦尔特·恩里克。

【问题讨论】:

    标签: java jsp exception servlets jakarta-ee


    【解决方案1】:

    可以用不同的方式处理异常。在这种情况下,似乎异常导致了用户通知或错误消息。

    现在,您展示的示例不应引发任何此类异常,您需要通知用户。首先,验证用户输入;其次,不要让你的程序流程使用异常。

    嗯,有一些例外情况我们需要用一些消息通知用户。这可以在controller 中完成,通常使用存储在属性文件中的消息。

    您必须知道在哪里捕获异常、在哪里抛出异常以及在哪里记录。 在这里我要建议的第一件事是不要同时进行,投掷和记录。如果您认为记录是合适的,请不要投掷。如果您认为投掷是合适的,请不要记录它。当你按照这种方式进行时,你会自动知道你需要记录哪一个,扔掉哪一个。这并不意味着某些异常会在没有记录的情况下消失。该方法不会进一步抛出该异常,它负责记录该异常。

    另一件事是知道在哪里使用checked异常以及在哪里使用runtime。抛出运行时异常的方法本身更容易使用。但这并不意味着您应该始终使用运行时异常。

    希望你能得到我的分数。

    【讨论】:

      【解决方案2】:

      更好的方法是

      • 首先隔离服务/DAO/控制器/视图层。
      • 从服务中抛出异常,在控制器中处理并采取相应措施。

      Our servlet wiki page 很好地展示了错误信息

      【讨论】:

      • 请不要介意,但是,我在您提供的链接中没有看到任何异常处理内容。它只是展示了我们如何在 JSP 中显示消息以及在 servlet 中进行基本验证。
      • @Adeel,我知道它没有,但它确实给了
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-09-08
      • 2012-06-08
      • 2016-02-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-31
      相关资源
      最近更新 更多