最近作应用,对异常处理有点不太清楚,看了人家文章,有人推荐《EnterpriseLibraryJune2005.》
搞下来看的糊涂,尤其是异常捕获和管理部分,干脆自己想着做,以下是我的想法,不知道有没有不周全的部分,请高手指点从总体上说,所有的异常都应该在日志中体现,所不同的是,异常存在层层抛出的情况
存在额外的包装、显示及处理部分。所以,先考虑日志
日志模块((应提供写入数据库功能))日志类型包括不代表任何错误的
:用于记录辅助信息的,如某年某月系统初始化成功:用于记录修改信息的,如某年某月某人修改了某条记录
:除了修改的时间,地点等信息,还包括具体修改记录的内容(最好通过记录集直接转成xml保存)这类日志应当不联合异常,自行消化处理
包含错误信息的
:应用错误类的警告部分(例如某个用户意外的退出) 这类应当联合异常提示给用户相关信息:应用错误类的错误部分(所有预期和非预期的错误) 这类信息记录错误的真实部分,
处理后(简要的错误信息提供给用户)异常模块
catch到任何异常后,首先记录日志。然后将日志作为参数传入自定义的异常类
在异常类中根据日志类型自动包装,取出返回给用户的部分(如果没有,则提示用户查看日志,给出原始异常信息)