2011-04-06 53 views
2

我想处理我的例外情况,以警告用户发生的错误。如何处理Java Web应用程序中的异常?

我所知道的是一样的东西:

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

这是最好的方法?如果不是,你会建议什么?

此致敬礼, 瓦尔特恩里克。

回答

7

例外,可以以不同的方式处理。在这种情况下,看起来异常会导致用户通知或错误消息。

现在,您显示的示例不应该抛出任何需要通知用户的例外。首先,验证用户输入并且不要使用异常让程序流动。

那么,有一些例外,我们需要通知用户一些消息。这通常可以在控制器中使用存储在属性文件中的消息完成。

您必须知道在哪里可以捕获异常,在何处抛出异常以及在何处登录。在这里,我想建议的第一件事是不要同时执行这些操作,抛出和记录。如果你认为伐木是合适的,不要扔它。如果你认为投掷是合适的,那么不要记录它。如果你按照这种方式,你会自动知道你需要登录哪一个,哪一个要扔。这并不意味着有些例外会在没有日志的情况下消失。不会进一步抛出这个方法,负责记录这一点。

另一件事是知道在哪里使用检查异常以及在哪里使用运行时。比方说,抛出运行时异常的方法比较容易使用。但这并不意味着你应该总是使用运行时异常。那么,这也取决于。

我希望你明白我的观点。

+0

谢谢你的观点,我同意你的Adeel。 – 2011-04-06 11:40:31

+0

谢谢,Valter。 – 2011-04-06 11:43:59

+0

+1 <!-----------------------> – 2011-04-06 11:46:07

2

嘛更好的方式是

  • 首先分离服务/ DAO /控制器/视图层。
  • 从服务中抛出异常,在控制器中处理并相应地执行。

Our servlet wiki page证实错误消息东西很好

+0

请不要介意,但我没有看到您提供的链接中的任何异常处理事情。它仅仅展示了我们如何在JSP中显示消息以及如何在servlet中进行基本验证。 – 2011-04-06 11:43:21

+0

@Adeel,我知道它没有,但它肯定给 – 2011-04-06 11:45:09

+0

当然,有完整的教程链接。 ;) – 2011-04-06 15:52:43

相关问题