NullPointerException

起因:在需求提测的过程中,测试在做破坏性测试时发现,错误消息没有提示,只有一个错误号:

{
    "flag": 0   // 0代码异常标识
}

正常情况应该是这样的:

{
    "flag": 0
    "error":xxx
}

然后在找寻代码之后发现是空指针异常,在代码里我已经try-catch了为什么到接口测试的时候不提示错误消息呢?后来发现try-catch确实捕获了,但是返回去的json有一个默认的效果就是把null的字段过滤掉。DEBUG的时候返回的参数是这样的:

{
    "flag": 0
    "error":null
}

json自动把为空的error过滤掉了导致的。由于返回给前台null值是没有意义的,所以最后的解决办法是在try-catch块中做如下处理:

try {
    ...;
} catch (Exception e) {
    response.setErrorFlag();
    response.setError((null == e.getMessage()) ? "NullPointerException" : e.getMessage());
}

按说空指针异常属于运行时异常,是代码逻辑的问题,但是写代码时难免可能会出现尤其是空指针异常,所以返回给前台的json串中明确的标识还是很重要的,不然如果连一点错误消息都没有的话测试抓瞎咱们开发也抓瞎。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值