Einige leistungsstarke Fehlerbehandlungsfunktionen wurden PHP7 hinzugefügt, wodurch Entwickler flexibler und effizienter bei der Verwaltung von Fehlern und Ausnahmen werden. In diesem Artikel werden diese neuen Fehlerbehandlungsfunktionen vorgestellt und einige spezifische Codebeispiele bereitgestellt, um zu zeigen, wie Fehler und Ausnahmen besser verwaltet werden können.
1. Fehlerbehandlungsfunktion
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)
Diese Funktion wird verwendet, um die Ebene der Fehlerberichterstattung festzulegen. Entwickler können steuern, ob Fehlermeldungen angezeigt und protokolliert werden, indem sie verschiedene Ebenen festlegen. Hier sind einige häufig verwendete Fehlerberichtsebenen:
E_ALL
: Alle Fehler anzeigen und protokollieren (Standard).
E_ERROR
: Nur schwerwiegende Fehler anzeigen und protokollieren.
E_WARNING
: Warnungen und schwerwiegende Fehler anzeigen und protokollieren.
E_NOTICE
: Benachrichtigungen, Warnungen und schwerwiegende Fehler anzeigen und protokollieren.
E_NONE
: Keine Fehler anzeigen oder protokollieren.
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 "上传失败,请稍后重试。"; }
Das obige ist der detaillierte Inhalt vonNeue Fehlerbehandlungsfunktionen in PHP7: Wie können Fehler und Ausnahmen besser verwaltet werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!