fastjson获取精确版本

参考:

条件是需要业务代码没有处理好异常信息。比如没有捕获异常,或者即便捕获了异常,但是将异常信息作为字符串返回了给客户端。

{
    
    "@type": "java.lang.AutoCloseable"

即便捕获了异常,但是将异常信息作为字符串返回了给客户端

在这里插入图片描述

对应代码:

    @RequestMapping(value = "/deserialize", method = {
    
    RequestMethod.POST })
    @ResponseBody
    public static String Deserialize(@RequestBody String params) {
    
    
        try {
    
    

            JSONObject ob = JSON.parseObject(params);

            return ob.toString();
        }catch (Exception e){
    
    
            e.printStackTrace();
            return e.toString();    // 将异常信息作为HTTP响应的一部分返回了
        }

没有捕获异常,于是异常被抛出返回给客户端

在这里插入图片描述
对应代码:

    @RequestMapping(value = "/deserializeE2", method = {
    
    RequestMethod.POST })
    @ResponseBody
    public static String DeserializeE2(@RequestBody String params) {
    
    
        JSONObject ob = JSON.parseObject(params);

        return ob.toString();
        // 并不捕获异常
    }

fastjson抛出的异常被捕获,且不返回异常信息

在这里插入图片描述

对应代码:

    @RequestMapping(value = "/deserializeE1", method = {
    
    RequestMethod.POST })
    @ResponseBody
    public static String DeserializeE1(@RequestBody String params) {
    
    
        try {
    
    
            JSONObject ob = JSON.parseObject(params);

            return ob.toString();
        }catch (Exception e){
    
    
            e.printStackTrace();
            // 并不返回异常信息
        }

        return "";
    }

猜你喜欢

转载自blog.csdn.net/caiqiiqi/article/details/107907489