frank oo java

我爱oo,我爱java。http://oofrank.blogchina.com

My Links

Blog统计

公告

欢迎到 oofrank@blogchina 来 QQ:421057986 email:oofrank@163.com
www.flickr.com
oofrank@flickr with my S9500

Free Download Manager
Free Download Manager

文章

收藏

相册

IT

other

存档


正在读取评论……
1 log
1.1 用log.error表示系统级错误,表示系统状态异常(本系统依赖的基础系统),需要人为参与的问题
1.2 用log.warn表示应用级错误,由于当前使用者的操作模式造成的,不影响
1.3 服务初始化或结束用log.info
1.4 用log.debug替代out,debug要判断isDebugEnable
1.5 用log.warn("",e)替代e.printstack
1.6 用log4e生成log相关代码
1.7 Log信息要保证可读性,需记录现场信息,如当前处理id等
1.8 log信息中最好不要包含 ' 号,即为jdbcAppender提前进行信息内容考虑
1.9 info级别的信息Appender中 不要记录%M%L信息,以免影响性能
1.10 可以使用log4j MDC存储操作员一类,

2 exception
2.1 try catch内的代码不要太长
2.2 因为性能原因,try catch少放循环内
2.3 尽量避免catch(Exception)这样的写法
2.4 不同模块定义不同的exception
2.5 建议创建应用的基类exception,特别是有定义error code需要的应用
2.6 只要catch就要log error message
2.7 catch并封装成另一种exception,如果不nest原来的exception就要log stackTrace
2.8 持久层throw dataAccessException,业务层throw checked exception,展现层只显示exception信息
2.9 规范的exception流程定义如下:
业务层不需处理的runtime exception,由展现层定义的exception controller捕获,交给相应的error页面显示并记录stack信息。业务层捕获下层的exception,并封装成业务层的checked exception,如果nest所捕获的exception,则仅log error message,如果不nest就需要用log.warn("",e)记录stack信息。展现层捕获业务层的exception,应由处理业务层exception的error页面来处理。
2.10 对于使用Spring装载的类,并且使用init初试化的(或构造函数包含代码的),在生产环境下必须catch所有的Exception,并通过合适的方式通知系统管理员。实际不只是Spring装载的类,只要是系统边界类都该如此处理。
2.11 在领域层,needChecked异常应当作为函数的返回结果来处理; 当考虑使用runtime exception的时候,应当考虑整个session的状态完整性



Trackback: http://tb.donews.net/TrackBack.aspx?PostId=727430


[点击此处收藏本文]  发表于2006年02月15日 2:43 PM




正在读取评论……
大名
网址
验证码
评论