3.9. 自定义错误处理器
错误处理器需要实现ErrorHandler接口的processExcption(BeetlException beeExceptionos, Writer writer);
- beeExceptionos,模板各种异常
writer 模板使用的输出流。系统自带的并未采用此Writer,而是直接输出到控制台
自定义错误处理可能是有多个原因,比如想将错误输出到页面而不是控制台
错误输出美化一下,而不是自带的格式
错误输出的内容做调整,如不输出错误行的模板内容,而仅仅是错误提示
错误输出到日志系统里
不仅仅输出日志,还抛出异常。默认自带的不会抛出异常,ReThrowConsoleErrorHandler 继承了ConsoleErrorHandler方法,打印异常后抛出
public class ReThrowConsoleErrorHandler extends ConsoleErrorHandler{
@Override
public void processExcption(BeetlException ex, Writer writer){
super.processExcption(ex, writer);
throw ex;
}
}
beetl 提供 ErrorInfo类来wrap BeetlException,转化为较为详细的提示信息,他具有如下信息
- type 一个简单的中文描述
- errorCode 内部使用的错误类型标识
- errorTokenText 错误发生的节点文本
- errorTokenLine 错误行
- msg 错误消息,有可能没有,因为有时候errorCode描述的已经很清楚了
- cause 错误的root 异常,也可能没有。
BeetlException 也包含了一个关键信息就是 resourceId,即出错所在的模板文件
当前内容版权归 ibeetl.com 或其关联方所有,如需对内容或内容相关联开源项目进行关注与资助,请访问 ibeetl.com .