NCV5X日志管理.ppt
《NCV5X日志管理.ppt》由会员分享,可在线阅读,更多相关《NCV5X日志管理.ppt(11页珍藏版)》请在冰豆网上搜索。
NC502客户化开发培训日志(异常)管理,用友软件股份有限公司NC客户化开发部龚红军2009年4月6日初版张时栋,目录,日志V5以前版本V5及以后版本异常异常对事务的影响前台异常捕获处理后台异常抛出/捕获处理常规处理方案(包括日志和异常)XxxUI。
XxxDAO。
日志/V5以前版本缺点,混杂在一个文件.无法输出到指定的文件.无法控制输出的级别.DebugInfoWarnError参考Log4JApacheCommonsLogging,日志/V5日志处理优点,两个主要的APInc.vo.logging.Debug前台输出nc.bs.logging.Logger后台输出四个级别的输出(针对Logger)Debug输出普通的调试信息,主要用于开发环境的信息输出Info输出提示性的信息,如程序运行所花费的时间等Warn输出警告性的信息,如系统设置了一个需要打开的文件,但是系统在打开他的时候有问题,而用了一个缺省的文件,为此系统还是能够正常运行,但却不符合某些期望,采用警告Error错误信息输出,表示系统出了错误,影响了系统的功能,如系统抛出了一个NullPointException,系统不能正常运行。
统运行时默认输出级别为ERROR,异常,业务异常BusinessException普通的业务异常.BusinessRuntimeException普通的运行时异常.如何设计异常体系结构尽量通过界面控制避免异常。
尽量通过校验前置条件避免异常。
前台处理一般不需要抛出异常。
不能通过捕获不同的异常来实现程序的跳转。
调用其他领域或模块前置/后置条件不满足,需捕获处理异常。
条件不满足业务无法继续需要抛出异常。
避免复杂的异常处理结构。
不要多重继承或组合。
异常/前台异常捕获,提示:
1、在前台一般不再显示抛出异常。
2、捕获后一般只是输出到日志,有些需要显示异常信息。
3、采用的方式一般是弹出对话框或者在信息栏输出。
异常/后台异常抛出,业务实现类业务代码中的业务异常无需捕获,其他异常需要捕获后转换成自己的XXBusinessException或XXRuntimeBusinessException由业务逻辑引发的异常必须为XXBusinessException或XXRuntimeBusinessException代码格式:
要求在方法上只能签BusinessExceptionpublicStringqueryTemplateId(TemplateParaVOparaVo)throwsBusinessException/业务代码中,XxxUI异常捕获,try/业务处理调用服务接口catch(BusinessExceptione)Logger.error(e.getMessage(),e);MessageDialog.showErrorDlg(this,null,e.getMessage();catch(BusinessRuntimeExceptione)Logger.error(e.getMessage(),e);MessageDialog.showErrorDlg(this,null,e.getMessage();catch(Exceptione)Logger.error(e.getMessage(),e);MessageDialog.showUnknownErrorDlg(this,e);,XxxDAO实现类,/不需处理的业务异常try/数据库处理catch(DbExceptione)Logger.error(e.getMessage(),e);thrownewXXBusinesseRuntimeException(e.Message();,/需要处理的业务异常try/数据库处理catch(DbExceptione)Logger.error(e.getMessage(),e);thrownewXXBusinessException(业务提示信息);,常规处理方案,日志Client端采用Debug输出信息Server端采用Logger输出信息。
包括异常信息。
异常异常体系不要过于复杂。
后台可抛出自己定义的异常,但方法的签名上尽量还是采用BusinessException。
捕获异常后不能吃掉异常(什么都不做,也不输出日志)。
异常对事务的影响非常大,需要关注和学习事务的处理。