いくつかの強力なエラー処理関数が PHP7 に追加され、開発者がエラーや例外をより柔軟かつ効率的に管理できるようになりました。この記事では、これらの新しいエラー処理関数を紹介し、エラーと例外をより適切に管理する方法を示す具体的なコード例をいくつか示します。
1. エラー処理関数
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
: エラーを表示または記録しません。 2. エラー処理の例
以下では、例を使用して、これらのエラー処理関数の使用方法を示します。
画像をアップロードする機能があるとします。ユーザーはフォームから画像をアップロードし、サーバーに保存できます。私たちは、アップロード プロセス中に発生する可能性のあるエラーや例外を処理し、ユーザーに明確なエラー メッセージを提供できるようにしたいと考えています。
まず、エラー ログを記録するためのカスタム エラー処理関数を設定します:
function customErrorHandler($errno, $errstr, $errfile, $errline) { // 记录错误日志 error_log("Error: $errstr in $errfile on line $errline"); // 返回一个错误提示给用户 echo "上传失败,请稍后重试。"; } set_error_handler("customErrorHandler");
次に、例外ログを記録するためのカスタム例外処理関数を設定します:
function customExceptionHandler($exception) { // 记录异常日志 error_log("Exception: " . $exception->getMessage()); // 返回一个异常提示给用户 echo "上传失败,请稍后重试。"; } set_exception_handler("customExceptionHandler");
最後に、画像をアップロードするコードを作成し、発生する可能性のあるエラーと例外をキャッチして処理します。
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 の新しいエラー処理関数により、開発者はエラーと例外をより適切に管理できるようになります。カスタムのエラー処理機能や例外処理機能を設定することで、開発者はエラーログの記録やエラーメールの送信など、さまざまなエラーや例外に柔軟に対応できます。この記事の紹介と例が、読者のエラーと例外の管理を改善し、開発効率を向上させるのに役立つことを願っています。
以上がPHP7 の新しいエラー処理関数: エラーと例外をより適切に管理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。