NutzCN Logo
问答 运行 系统异常 如何捕获 封装 返回对应的json信息呢
发布于 53天前 作者 Hamming 155 次浏览 复制 上一个帖子 下一个帖子
标签:

运行 系统异常 如何捕获 封装 返回对应的json信息呢
例如 查询 传参为空 查询 抛异常如下 返回 就没有任何数据
java.lang.IllegalArgumentException
如何捕捉异常 返回 对应的json信息呢

5 回复

定义了这个类 怎么捕获异常 返回信息呢 例如:java.lang.ExceptionInInitializerError

package io.nutz.nutzsite.common.processor;

import org.nutz.ioc.loader.annotation.IocBean;
import org.nutz.mvc.ActionContext;
import org.nutz.mvc.impl.processor.AbstractProcessor;

/**
 * @Author: Haimming
 * @Date: 2019-07-03 09:57
 * @Version 1.0
 */
@IocBean(singleton=false)
public class ErrorProcessor  extends AbstractProcessor {


    @Override
    public void process(ActionContext ac) throws Throwable {

    }
}

public class MyFailProcessor extends ViewProcessor {

    private static final Log log = Logs.get();

    @Override
    public void init(NutConfig config, ActionInfo ai) throws Throwable {
        view = evalView(config, ai, ai.getFailView());
    }

    @Override
    public void process(ActionContext ac) throws Throwable {
        if (log.isWarnEnabled()) {
            String uri = Mvcs.getRequestPath(ac.getRequest());
            if (ac.getError() instanceof MvcException) {
                log.warn(String.format("Error@%s: %s", uri, ac.getError().getMessage()));
            } else {
                log.warn(String.format("Error@%s :", uri), ac.getError());
            }
        }
        ac.setMethodReturn(Response.fail(ac.getError()));
        super.process(ac);
    }
}

MvcException 找不到
Response.fail 找不到

那是自定义异常和帮助类

添加回复
请先登陆
回到顶部