在 PHP 中,json_encode
函数可能会遇到一些错误,例如无法编码的数据类型
function json_encode_safe($data) {
if (json_encode($data) === false) {
// 获取错误信息
$error = json_last_error();
// 根据错误代码获取错误描述
$error_msg = json_last_error_msg($error);
// 处理异常,例如记录日志或抛出自定义异常
throw new Exception("json_encode error: {$error_msg}");
}
return json_encode($data);
}
使用这个函数,你可以捕获 json_encode
的异常并进行相应的处理:
try { $data = https://www.yisu.com/ask/['name' => 'John', 'age' => 30, 'city' => 'New York', 'invalid_key' => 'This is an invalid value!' // 这个值将导致 json_encode 失败 ]; $json_data = https://www.yisu.com/ask/json_encode_safe($data);'Error: ' . $e->getMessage(); }
在这个示例中,我们使用 json_encode_safe
函数来捕获 json_encode
的异常,并在发生错误时抛出一个自定义异常。然后,我们使用 try-catch
语句来捕获这个异常并进行处理。