몇 가지 강력한 오류 처리 기능이 PHP7에 추가되어 개발자가 오류 및 예외를 보다 유연하고 효율적으로 관리할 수 있습니다. 이 문서에서는 이러한 새로운 오류 처리 기능을 소개하고 오류 및 예외를 보다 효과적으로 관리하는 방법을 보여 주는 몇 가지 특정 코드 예제를 제공합니다.
1. 오류 처리 함수
set_error_handler(callback)
set_error_handler(callback)
function customErrorHandler($errno, $errstr, $errfile, $errline) { // 记录错误日志 error_log("Error: $errstr in $errfile on line $errline"); // 发送错误邮件 $to = "admin@example.com"; $subject = "PHP Error"; $message = "An error occurred: $errstr in $errfile on line $errline"; mail($to, $subject, $message); } set_error_handler("customErrorHandler");
set_exception_handler(callback)
function customExceptionHandler($exception) { // 记录异常日志 error_log("Exception: " . $exception->getMessage()); // 发送异常邮件 $to = "admin@example.com"; $subject = "PHP Exception"; $message = "An exception occurred: " . $exception->getMessage(); mail($to, $subject, $message); } set_exception_handler("customExceptionHandler");
error_reporting(level)
E_ALL
:显示和记录所有错误(默认值)。E_ERROR
:只显示和记录致命错误。E_WARNING
:显示和记录警告和致命错误。E_NOTICE
:显示和记录通知、警告和致命错误。E_NONE
function customErrorHandler($errno, $errstr, $errfile, $errline) { // 记录错误日志 error_log("Error: $errstr in $errfile on line $errline"); // 返回一个错误提示给用户 echo "上传失败,请稍后重试。"; } set_error_handler("customErrorHandler");
set_Exception_handler(callback)
function customExceptionHandler($exception) { // 记录异常日志 error_log("Exception: " . $exception->getMessage()); // 返回一个异常提示给用户 echo "上传失败,请稍后重试。"; } set_exception_handler("customExceptionHandler");
error_reporting(level)
이 함수는 오류 보고 수준을 설정하는 데 사용됩니다. 개발자는 다양한 수준을 설정하여 오류 메시지 표시 및 기록 여부를 제어할 수 있습니다. 다음은 일반적으로 사용되는 오류 보고 수준입니다.
E_ALL
: 모든 오류를 표시하고 기록합니다(기본값).
E_ERROR
: 치명적인 오류만 표시하고 기록합니다.
E_WARNING
: 경고와 치명적인 오류를 표시하고 기록합니다.
E_NOTICE
: 알림, 경고 및 치명적인 오류를 표시하고 기록합니다.
E_NONE
: 오류를 표시하거나 기록하지 않습니다.
try { // 检查图片文件是否上传成功 if ($_FILES["file"]["error"] != UPLOAD_ERR_OK) { throw new Exception("上传失败"); } // 检查文件类型是否合法 $allowedTypes = ["image/jpeg", "image/png"]; if (!in_array($_FILES["file"]["type"], $allowedTypes)) { throw new Exception("文件类型不支持"); } // 将上传的文件保存到服务器上 $destination = "uploads/" . $_FILES["file"]["name"]; move_uploaded_file($_FILES["file"]["tmp_name"], $destination); // 返回上传成功提示给用户 echo "上传成功"; } catch (Exception $e) { // 处理异常 $error = $e->getMessage(); error_log("Exception: $error"); // 返回一个错误提示给用户 echo "上传失败,请稍后重试。"; }
위 내용은 PHP7의 새로운 오류 처리 기능: 오류와 예외를 더 잘 관리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!