您的位置:首页 > 运维架构 > 网站架构

架构设计之异常处理(第一讲)

2015-12-16 10:35 423 查看
摘自51CTO ,感觉挺有道理的一段话,如下:

1、通常异常是用于去扑捉错误的发生,让开发人员可以针对不同的错误做处理,但是有时候可以利用异常去处理一些特殊问题。你说的Dao、Service、Action或者说工具类的异常,是否往上抛取决于你是否想捕获该异常并做处理,例如:HibernateException异常,在写Dao方法时一般会捕获该异常的。又比如:在写用户登录接口时,如果用户不存在,我可以选择自定义异常UserNotFoundException,在ACtion层中调用Service层的Login方法,如果用户不存在,我将该异常抛出,那么Action层便可以扑捉到该异常,并做出处理。如果你要去了解他们的异常是否是throw,还是try
-- catch,最好看源码。如果是throw那么你在调用的时候,就必须try -- catch或者再往上一层应用抛出。

2、至于java异常的机制,主要分为Error,Exception、RuntimeException;

Error:是JVM处理的,一般不用去管理;

Exception:是必须捕获的异常

RuntimeException:也称之为运行期异常,java自己会处理该异常,当然也可以用try -- catch捕获

3、总结:

    在实际开发中,通常回去使用日志记录异常的发生,这些日志一部分是DEBUG日志,一部分用于数据统计。但是不管咋么样,如果你想知道错误的发生来源,并通过自己的日志管理方式管理,那么通常会手动去扑捉(try-catch)异常,然后通过e.getMessage获取异常信息,将其记录在日志中,如果自己不管理,例如:在Tomcat服务器中,会记录在catalina.out日志文件中。

    异常的重要性那是不言而喻的,至于楼主说的怎么往上抛,怎么捕获。不应该去考虑框架本身如何去管理,而是在于你是否需要错误处理,如果需要就try--catch,不需要那么交由给框架或者Tomcat等服务器记录异常的发生。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  异常