Net有道

紫冠道人的求道历程

导航

RFID会议签到系统总结(四)-- 异常处理与日志记录

 

这一篇还没准备进入实质性的阶段,先插段事关整个系统的异常处理部分。

最基本的原则当然是所有有可能影响到系统正常运行的异常都要Catch,并作记录,所谓最基本的原则当然只能是到具体实现的阶段把握了。但总有百密一疏,挂万漏一的时候,对于这些漏网之鱼必须在Application.ThreadExceptionAppDomain.CurrentDomain.UnhandledException事件中根据情况处理掉。

对于已经冒到上述二个事件中的异常,不但要作记录,还要出个Error形式的对话框提醒之,否则出状况了也不知道。至于是否要关闭整个应用程序则原则上不予理睬。只有一种情况,就是UnhandledException中的事件参数IsTerminatingTrue时,必须要关闭应用程序了,籍此可以在ApplicationExit事件中及时的清理掉一些资源。

当然异常处理是个很大的话题,甚至有些地方是特意要抛个异常的,这些东西要具体事情具体分析,这里只是提一下系统中一些大体的做法。

 

日志记录也是一个很重要的部分,要记录的东西包括上面提到的一些程序异常状况,网络出现异常的状况,系统启动与退出,一些重要操作。还有就是大量的接收到的通讯指令,大量的从RFID硬件设备读出的信息。系统一直很稳稳当当的运行,这些东西用途不大,但一旦系统有状况,这些记录将是解决问题、排除故障的依据。

从各方面考虑,日志记录决定用log4net,现在要思量的只是具体如何配置它而已。最后决定系统中用二个appenderEventLogAppender用于记录异常信息,包括程序与网络异常,这种信息一般不会很多,而且记录在EventLog个人认为比较的醒目,程序异常一般定义为“ERROR”级别,只有在ThreadException UnhandledException 事件中出现的才定义为“FATAL”,而网络异常则用“WARN”。另一个appenderRollingLogFileAppender,用于记录操作信息,通讯信息和硬件信息,这种记录记录量会比较的大,一个小时产生一个日志文件是必要的,这种记录都定义为“INFO”级别。

posted on 2007-06-07 13:56  lichdr  阅读(942)  评论(1编辑  收藏  举报