ActionException获取不到错误信息

请求参数格式转换错误,无法获取到异常的描述信息.发现控制台有输出错误描述,但是堆栈信息没有输出错误描述.D5AABE3F-6711-4E43-8734-306C57342D89.png

一番代码断点后

88A18018-12E0-4CB4-AA86-16BEA4E82B89.png

发现ActionException只做了log输出errorMessage,没有将errorMessage赋值给detailMessage,这样在try catch处通过e.getMessage()获取到的为null.

0F14E632-1257-4B62-82CB-D3B2F5D049D5.png


业务代码:

4671E6A4-4AD1-4FD0-9744-30131B814B4D.png



评论区

JFinal

2016-12-05 17:05

这个异常是 404 url 找不到异常,而 url 中的参数错误归类到了 url 本身的错误,所以也就没有将异常消息传给父类的 Exception 中,只是在 warn 日志级别做了日志,一般情况下是满足需求的,不知道楼主什么样的需求?

l745230

2016-12-05 17:14

比如接口调用,参数格式不正确的时候要返回错误信息告知客户端:
"参数类型不正确:Can not parse the parameter "啧啧啧" to long Value",
这样客户端能明确的知道是哪个参数传的有问题.

现在因为取不到错误描述,给客户端的返回信息 :
"参数类型不正确:null" ,
这时候客户端人员就只能一个个参数比对过去,或者直接跟服务端沟通,查日志看是哪个参数传的有问题.

l745230

2016-12-05 17:18

@JFinal 反馈修改了一下,获取参数的时候套了个try catch,就已经取不到了,封装给前端的错误信息就变成了:"参数类型不正确:null",如果接口参数数量多的时候,就不好排查了

JFinal

2016-12-05 23:19

@l745230 如果要对 404 错误再精细化返回异常信息,这个的确是个合理的需求,jfinal 2.3 会改进这里,感谢反馈

热门反馈

扫码入社