处理接口异常 日志输出的几种方式

37 篇文章 0 订阅

1,起因:我的一个接口报错,但是一直找不到详细的报错日志信息。
找到的日志如下:
在这里插入图片描述

可以看到:只是说程序发生异常,但没有详细的报错信息:指出是哪一条代码报错了

解决:问同事,说:是因为我的接口并没有try catch,没有写e.printStackTrace(); 代码,所以详细的错误日志打印不出来。

所以,以下是同事教的几种处理错误日志的方式:
第一种:在controller层加上try catch(有的变量外面要调用,就声明在try外面)
在这里插入图片描述
这就是将try catch 放在最外层controller,然后放在一个专门的参数里面,浏览器打开的时候,如果有问题,这个参数就都出来了。根本不需要去翻日志

controller参数怎么返回的?: 就定义一个错误信息字段啊,然后返回,一样的

注意:
在这里插入图片描述

加一个error,把e放到里面

第二种方式:

	/**
     * 获取异常堆栈信息
     *
     * @param t
     * @return
     */
    private String printStackTrace(Throwable t) {
        StringWriter sw = new StringWriter();
        PrintWriter pw = new PrintWriter(sw);
        try {
            t.printStackTrace(pw);
            return sw.toString();
        } finally {
            try {
            	pw.close();
				sw.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
        }
    }

在这里插入图片描述
就是通过这个方法,把e变成日志信息,然后定义一个返回字段,这样有问题,返回信息里面就可以看到,根本不需要放在日志里面,既占空间,有占世界。。
参数都是全局变量,直接返回页面,
随便定义,也可以命名errMsg 放在返回参数里面,
这样既省空间,又省时间。。有问题直接看参数返回就知道了。。
根本不需要去日志找。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值