论坛首页 Java企业应用论坛

一个异常应该在一个log文件里面出现一次且只有一次

浏览 5513 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2010-11-28   最后修改:2010-11-28
linliangyi2007 写道
我觉得这个问题的关键是,系统在哪个层面上拦截/处理异常?
从设计上说,层层往上抛异常,层层记录,却不处理,这样的设计有缺陷的。

底层的异常应该对上层屏蔽,外部API调用可能得到一个false或者null的结果,但不是异常本身。


1.请问底层的异常上层屏蔽的目的是什么?

2.以false和null表达异常,我觉得不合适。调用者很可能会忽略对异常的处理。

3.打印日志,我建议,catch异常的就要进行记录。在多人合作的情况下,这样的规则最容易统一,必免出现异常出现而不记录的情况。多看点日志对个程序员来说,也不算啥。

0 请登录后投票
   发表时间:2010-11-28  
gdpglc 写道
linliangyi2007 写道
我觉得这个问题的关键是,系统在哪个层面上拦截/处理异常?
从设计上说,层层往上抛异常,层层记录,却不处理,这样的设计有缺陷的。

底层的异常应该对上层屏蔽,外部API调用可能得到一个false或者null的结果,但不是异常本身。


1.请问底层的民常上层屏蔽的目的是什么?

2.以false和null表达异常,我觉得不合适。调用者很可能会忽略对异常的处理。

3.打印日志,我建议,catch异常的就要进行记录。在多人合作的情况下,这样的规则最容易统一,必免出现异常出现而不记录的情况。多看点日志对个程序员来说,也不算啥。



1,2 我认为以false和null这个处理方式是个设计的败笔。忽略的话,很多人catch住一样忽略,你是防不住的。
3 人生要有追求啊,为什么要多看日志。
0 请登录后投票
   发表时间:2010-11-28  
zhang_xzhi_xjtu 写道

1,2 我认为以false和null这个处理方式是个设计的败笔。忽略的话,很多人catch住一样忽略,你是防不住的。

败在何处?
0 请登录后投票
   发表时间:2010-11-28  
false,null是返回值,是正常流程的一部分,不是异常流。
0 请登录后投票
   发表时间:2010-11-28   最后修改:2010-11-28
zhang_xzhi_xjtu 写道
false,null是返回值,是正常流程的一部分,不是异常流。

这算总原则吧,我不反对。
不过,我想的说的是:事情要具体情况具体分析,不可教条。某些事情,算什么是分不清楚的,比如:hibernate的load和get方法,功能一样,但找不到对象时,前者会抛异常,后者返回null。

软件有规则的一面,也有复杂多变的一面,很多简单的原则在软件开发上,都是有适用范围的。在应用软件开发的指导性原则时,一定要了解它的前因后果,防止在错误的上下文下应用某个设计原则,那只能是事倍功半。


0 请登录后投票
   发表时间:2010-11-28  
gdpglc 写道
zhang_xzhi_xjtu 写道
false,null是返回值,是正常流程的一部分,不是异常流。

这算总原则吧,我不反对。
不过,我想的说的是:事情要具体情况具体分析,不可教条。某些事情,算什么是分不清楚的,比如:hibernate的load和get方法,功能一样,但找不到对象时,前者会抛异常,后者返回null。

软件有规则的一面,也有复杂多变的一面,很多简单的原则在软件开发上,都是有适用范围的。在应用软件开发的指导性原则时,一定要了解它的前因后果,防止在错误的上下文下应用某个设计原则,那只能是事倍功半。




同意你说的事情要具体情况具体分析,不可教条。

hibernate的load和get方法,功能一样,但找不到对象时,前者会抛异常,后者返回null。

这个设计不觉的很奇怪吗?

如果你不假思索的说这个好,并且以这个为参照物的话,是不是教条(迷信框架)了。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics