NUTZ中处理系统未捕获异常

本文详细介绍了如何在mvc-chain.js中配置系统异常处理类,并通过实例继承ViewProcessor来自定义错误提示页面。

关键内容


  • mvc-chain.js
  • ViewProcessor
  • ai.setFailView(“redirect:/sysError.html”);
  • log.error(this.trrowableToString(ac.getError()));

首先,在mvc-chain.js中配置系统异常处理类

var chain={
    "default" : {
        "ps" : [
              "com.carforu.processor.SystemLogProcessor",
"org.nutz.mvc.impl.processor.UpdateRequestAttributesProcessor",         "org.nutz.mvc.impl.processor.EncodingProcessor",         "org.nutz.mvc.impl.processor.ModuleProcessor",          "org.nutz.integration.shiro.NutShiroProcessor",
"org.nutz.mvc.impl.processor.ActionFiltersProcessor",
"org.nutz.mvc.impl.processor.AdaptorProcessor",
"org.nutz.mvc.impl.processor.MethodInvokeProcessor",
              "org.nutz.mvc.impl.processor.ViewProcessor"
              ],
        "error" : 'com.carforu.data.SysUncaughtException'
    }
};

然后自己写一个实例继承ViewProcessor


最后在它的方法中设置自己的错误提示页面

 public void init(NutConfig config, ActionInfo ai) throws Throwable {
	 ai.setFailView("redirect:/sysError.html");
	view = evalView(config, ai, ai.getFailView());

 }
Nutz架构是一个轻量级的Java Web框架,它提供了一种方便的方式来处理全局异常。在Nutz中,全局异常处理通常通过`GlobalExceptionHandler`这个组件来实现。以下是简单的步骤: 1. **创建全局异常处理器**:首先,你需要创建一个实现了`com.nutz.ioc.NutFactory.IBeanFactory`接口的类,并覆盖`createInstance()`方法。在这个方法里,你可以创建并返回一个实现了`GlobalExceptionHandler`的实例。 ```java public class GlobalExceptionHandlerFactory implements NutFactory.IBeanFactory<GlobalExceptionHandler> { @Override public GlobalExceptionHandler createInstance() { return new GlobalExceptionHandlerImpl(); } } ``` 2. **注册处理器**:然后,在应用启动时,需要将这个工厂注册到Nutz容器中,以便自动管理全局异常处理器的生命周期。 ```java @NutFactory(GlobalExceptionHandler.class) public class GlobalExceptionHandlerFactoryClass { // 注册你的全局异常处理器 } ``` 3. **实现`GlobalExceptionHandler`**:`GlobalExceptionHandler`通常会捕获所有未被捕获的异常,并可以定制错误响应、记录日志等操作。例如,可以这样做: ```java public class GlobalExceptionHandlerImpl implements GlobalExceptionHandler { @Override public void handleException(IRequest request, IResponse response, Throwable e) { // 记录日志,发送友好的错误页面,或者根据需要自定义处理逻辑 log.error("Uncaught exception", e); response.setStatus(500).setHeader("Content-Type", "text/plain").writeUTF(e.getMessage()); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

洲上牧童

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值