某日在访问接口后,前台直接报了一个Internal server error 500,这种老生常谈的问题我以为很简单,于是看看接口和后台有没有抛出异常,结果发现,并没有!然后开始调试模式,结果发现后台接口在return数据前,数据是完整的,没有捕获到任何异常,但是一到前台就出现Internal server error 500,有点懵。

最后,通过对比详细对比数据发现,结果真的出现在后台上,问题如下:

在返回的数据中,有一个值出现了Infinity,(计算过程中,分母为0造成的),try catch 没有捕获到异常,然后一到前台就报错500了。把这个问题修改后就正常了。

除了这个以外,报错500比较常见的就是空指针(Null Pointer Exception)和数组越界了,解决这个问题的办法就是给代码加上try catch,然后捕获到异常就知道问题所在了。