1.1.1JA V A异常处理的原则
(1)尽可能的处理异常
要尽可能的处理异常,如果条件确实不允许,无法在自己的代码中完成处理,就考虑声明异常。
如果人为避免在代码中处理异常,仅作声明,则是一种错误和依赖的实践。
(2)具体问题具体解决
异常的部分优点在于能为不同类型的问题提供不同的处理操作。
有效异常处理的关键是识别特定故障场景,并开发解决此场景的特定相应行为。
为了充分利用异常处理能力,需要为特定类型的问题构建特定的处理器块。
(3)记录可能影响应用程序运行的异常
至少要采取一些永久的方式,记录下可能影响应用程序操作的异常。
理想情况下,当然是在第一时间解决引发异常的基本问题。
不过,无论采用哪种处理操作,一般总应记录下潜在的关键问题。
别看这个操作很简单,但它可以帮助您用很少的时间来跟踪应用程序中复杂问题的起因。
(4)根据情形将异常转化为业务上下文
若要通知一个应用程序特有的问题,有必要将应用程序转换为不同形式。
若用业务特定状态表示异常,则代码更易维护。
从某种意义上讲,无论何时将异常传到不同上下文(即另一技术层),都应将异常转换为对新上下文有意义的形式。
1.1.2JA V A处理方法
1.1.
2.1 提示信息输出
●异常类
信息输出统一采用PaMsg. abort方法输出
●警告类
信息输出统一采用PaMsg. Warn方法输出
●成功类
信息输出统一采用PaMsg. success方法输出
1.1.
2.2 提示信息获取
●获取JAVA程序信息
由于PaMsg对象的信息输出会抛出一个ApplicationObjectException,
所以捕获到该异常,就能截取异常代码及异常信息。
●获取存储过程信息
对于JAVA调用存储过程这种情况,如果存储过程抛出了提示信息,JAVA
程序通过package中PA_MSGS.GET_MSG方法可以获取信息。
1.2日志管理
本系统的日志管理,采用Log4j。
Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。
这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。
1.2.1文件日志
1.2.1.1 日志等级
日志等级分为DEBUG,INFO,ERROR三级,在System.properties中定义,可以随时关闭DEBUG日志。
1.2.1.2控制台输出
日志配置属性ISCONSOLE=TRUE,默认日志输出可以同时在控制台输出,方便开发模式,测试及生产模式下修改为FALSE,将不在控制台屏幕输出。
1.2.1.3日志模式
日志模式默认为按天生成,即一天生成一个日志文件,之前的日志以日期标识文件名。
ISPAGE=FALSE
MAXFILESIZE=100KB
MAXBACKUP=40。
如果将ISPAGE属性设置为TRUE,则日志文件按大小生成,文件大小定义可修改,文件记录覆盖属性为MAXBACKUP,默认为40个文件。
1.2.1.4日志分类
根据定义的交易代码,日志按交易代码生成,每个交易生成一个日志文件。
1.2.1.5日志记录格式
日志记录统一采用
debug(类名,方法名,业务主键, 消息代码,消息内容);
info(类名,方法名,业务主键, 消息代码,消息内容);
warn(类名,方法名,业务主键, 消息代码,消息内容);
error(类名,方法名,业务主键, 消息代码,消息内容);
写入文件的格式为
[类名.方法名]-msgCode[消息ID] : [业务主键] 消息内容。