分享
 
 
 

异常处理:和日志集成

王朝other·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

在软件实现中,异常和日志都是重要的质量保证手段,常常,我们总是需要在系统实现上同时提供异常和日志,并且总是在“距离”很近的地方实现的,下面是一段典型的使用异常和日志的代码:

try{

//do something here...

}catch(Exception e){

log.error(“Your business exception message…”);

throw new BusinessException(“Your business exception message…”);

}

类似的代码我们经常遇到。虽然类似的代码都是简单的,但在现实中我们可以发现,一些时候粗心的程序员总是忽略或者忘记了两者都需要书写并且尽可能使用一致的异常消息。既然异常和日志总是同时出现的,那么我们就可以把两者集合起来。实际上在我看来,他们本来就是一家人。

为了达到异常和日志的集合,我测试过2种做法:一种选择是在自定义异常类中提供支持;一种是异常消息拼凑时提供支持。我们也可以在其中提供额外的功能来保证系统的效能,包括“适度”缓冲的异常处理。但需要特别注意的是,这种处理所带来的“长过程”(也就是经过不止一个步骤才完成这些功能)开销,在缓冲异常信息可能带来的系统出错时异常丢失,以及在异常消息处理时可能出现错误需要提供额外的保护措施。

更进一步的,我们应该注意到如下事实:

首先,异常的层次结构是不同的。它包括了底层的LowlevelException(合称相关需要抛出异常的异常处理)和上层的异常使用者,细心的读者应该发现,上述的实例实际上属于LowlevelException。

其次,我们也应该注意到异常包括客户定制的异常如BusinessException和Java自带的异常。这些异常的共存如何进行统一是我们需要面对的,但通常,我认为异常的客户定制包装是必要的,特别是多层结构下这个客户定制化就是让异常具有容易理解的信息。

异常和日志的集合,是一种简单、实用的创新做法,在这种实现里面,你可以提高系统异常处理的一致性程度、你可以提供经过缓冲的日志输出的一致性做法,我们也注意到她的处理的灵活性,必要时,你可以关闭她。

当然,无论如何,异常和日志的集合也好,分离也好,任何时候,人的因素才是最重要的,更一般的,我们可以发现,异常和日志要做的就是把系统特殊的或者重要的情况记录下来,这些记录信息应该具有明确的信息保证她是可读的、可定位的,实际上,这就是异常处理的全部。简单的说,“异常处理:实用就是好”(参考 http://www.matrix.org.cn/blog/X-Brave/《异常处理:实用就是好》)。

实际上,为了提高性能和保证系统的正确性,我很想使用异步消息机制来完成这些功能,或者至少我需要保证系统在 集群 环境下的正确性,但我拒绝使用复杂的第三方技术来实现这些要求(性能和依赖考虑),也不优先考虑使用高端服务器所自带的或者外购的消息服务组件,我也缺乏对 集群 环境的实际经验,这些现实妨碍了我对更好的实现的尝试。

但通过在系统中提供开关功能、对缓冲数据进行数目控制以及只在有限的几个或者一个地方提供具体实现,所以,对屏蔽该功能是容易的。当然,对至少两种实现的较高强度测试都是没有问题的。毕竟,真正的分布式的实现,特别是 集群 环境下的处理,并非如很多人宣称的那么容易实现。这种既满足了当前绝大部分需求(包括性能和可靠性)也充分考虑可能的影响并提供小开销解决方案的处理,我想,是足够了的。

当然,我还是很想听到您对如何自己实现简单的可靠异步消息以及集群实现技术细节的看法。欢迎讨论,当然,更多的,希望您是老师的角色并给予指导。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有