lifehouse 2011-04-10 21:34
浏览 211
已采纳

请问在真实企业WEB项目中,一般如何处理异常的。

本人正在做毕业设计,是一个WEB系统(有点老土,勿喷 :oops: )。自己对异常处理还有日志记录这一块不太懂。

想了解下在真实的企业WEB项目中是如何处理异常,并输出日志的。

我现在是这样来处理的,定义了一个可嵌套的业务层 checked 异常 BusinessInterruptException extends Exception,再定义了一个 可嵌套的底层 unchecked 异常 DataAccessException extends RuntimeException。
在业务层出现异常的话都 throw 出 BusinessInterruptException 并写入异常原因。在 Dao 层出现 SQLException的话 catch 后再 throw 出 DataAccessException并记录日志。

使用的是 Log4J 记录日志

不知道自己这样处理是否合理,想请问各位在真实项目中一般都是如何处理的。

  • 写回答

3条回答 默认 最新

  • iteye_20676 2011-04-11 23:54
    关注

    和前面仁兄说的差不多。

    为了方便查找异常可以给你建议。也是我目前项目的异常机制。

    所有错误都向上抛,比如前面仁兄说的action里 才去处理。不过此处说的处理是写日志。
    至于程序的错误处理,看你怎么设计的逻辑了。

    日志就2个地方写,一个是刚才说的,可以说是入口了。还有就是对DB操作类的增,删,改。查。的所有最终执行的方法。

    LOG的写法有很多。比如DAO的异常加SQL一起写LOG,业务层的加参数,返回值,接口名字等能直观快速提供查找的信息一起写LOG,当然,都别忘记打异常堆栈信息。和当时异常的时间

    日志最好是SubfferString 全部添加好,在一次中写入LOG,因为够大的话,线程太多。不然会乱的。

    LOG4J 可以的。没什么不太不好。

    希望有参考价值!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥88 实在没有想法,需要个思路
  • ¥15 MATLAB报错输入参数太多
  • ¥15 python中合并修改日期相同的CSV文件并按照修改日期的名字命名文件
  • ¥15 有赏,i卡绘世画不出
  • ¥15 如何用stata画出文献中常见的安慰剂检验图
  • ¥15 c语言链表结构体数据插入
  • ¥40 使用MATLAB解答线性代数问题
  • ¥15 COCOS的问题COCOS的问题
  • ¥15 FPGA-SRIO初始化失败
  • ¥15 MapReduce实现倒排索引失败