为什么json格式化不会直接抛异常?

914739959

问题描述

为什么json格式化不会直接抛异常?

程序代码

$str = "asdda_周大生大——萨达dsasd\;lkl"
$str = substr($str,0,10);
return json($str)

这样会直接程序崩溃,写try catch都没用,捕捉不到

报错信息

只有这样才会报错
return json_encode($data,JSON_UNESCAPED_UNICODE | JSON_THROW_ON_ERROR);

截图报错信息里报错文件相关代码

JsonException: Malformed UTF-8 characters, possibly incorrectly encoded in /home/webman/app/test/controller/TestController.php:74

137 1 0
1个回答

json转化失败默认返回false代表空,所以返回一个包体0字节的空页面,并不是崩溃。
如果需要json转换失败时抛出异常,可以手动传参

json($data, JSON_THROW_ON_ERROR);
  • 暂无评论
×
🔝