PHP でエラー処理関数とエラー マスキングをカスタマイズする方法をご存知ですか?

WBOY
リリース: 2023-04-10 18:12:02
オリジナル
2573 人が閲覧しました

前回の記事では、PHPのエラーの種類とエラーレベルを詳しく紹介した「PHPのエラーの種類とエラーレベルを理解する」をご紹介しました。 PHP でエラー処理をカスタマイズする方法とエラーをブロックする方法を見てください。皆さんのお役に立てれば幸いです。

PHP でエラー処理関数とエラー マスキングをカスタマイズする方法をご存知ですか?

日常の開発ではエラーが避けられず、エラー処理関数として関数を指定することがありますが、PHPの処理関数にはカスタムエラーがあります。

<strong>#set_error_handler() <span style="font-size: 20px;"></span></strong>##関数カスタム エラー処理関数# #PHP関数をエラー処理関数として指定するために使用される set_error_handler() 関数が提供されます。その構文形式は次のとおりです:

set_error_handler(自定义函数名 [, int $error_types = E_ALL | E_STRICT ])
ログイン後にコピー

このカスタム関数名の構文形式は次のとおりです:

error_handler(int 错误的级别 , string 错误的信息 [, string 发生错误的文件名 [, int 发生错误的行号 ]])
ログイン後にコピー

以前に定義されたエラー ハンドラーがある場合、返されるプログラム名は変更されたプログラムのプログラム名です。組み込みエラー ハンドラーの場合、返される結果は NULL です。無効なコールバック関数が指定された場合も NULL が返されます。


次に例を見て、エラー処理関数をカスタマイズし、それを使用してプログラム内のエラーを処理してみましょう。例は次のとおりです:

<?php
    function error_handler($errno, $errstr, $errfile, $errline ) {
        echo "error number:".$errno."<br/>";
        echo "error msg:".$errstr."<br/>";
        echo "error file:".$errfile."<br/>";
        echo "error line:".$errline."<br/>";
        die(&#39;something error&#39;);
    }
    set_error_handler("error_handler");
    strpos();
?>
ログイン後にコピー

出力結果 :


PHP でエラー処理関数とエラー マスキングをカスタマイズする方法をご存知ですか?#この関数を使用する際に注意する必要があるのは、このメソッドはエラー処理にのみ使用されるということです。間違った関数で実行すると、プログラムはエラーが発生した関数ステートメントの実行を継続するため、関数を終了するには die() 関数を使用する必要があります。


日常の開発では、プログラム内の例外を自動的にスローすることはできませんが、このとき set_error_handler() を使用してカスタマイズし、例外をエラーとして処理することもできます。例外を自動的にキャッチするためのエラー処理。

例は次のとおりです:

<?php
    function error_handler($errno, $errstr, $errfile, $errline ) {
        echo "error number:".$errno."<br/>";
        echo "error msg:".$errstr."<br/>";
        echo "error file:".$errfile."<br/>";
        echo "error line:".$errline."<br/>";
        die(&#39;something error&#39;);
    }
    set_error_handler("error_handler");
    /* 触发异常 */
    try {
        $a = 5/0;//程序会自动捕捉这个异常,并且由自定义函数来处理
        echo $a;
    } catch(Exception $e) {
        echo $e->getMessage();
    }
?>
ログイン後にコピー

出力結果:


PHP でエラー処理関数とエラー マスキングをカスタマイズする方法をご存知ですか?

##エラー マスキング

PHP の開発プロセスでは、set_error_handler() によるエラー処理関数のカスタマイズによってエラーを処理するだけでなく、エラーをマスクすることもでき、場合によってはエラー マスクも必要になります。次に、エラーをシールドするためのいくつかの方法を列挙します。

  • #@

    <span style="font-size: 16px;"><strong></strong>---エラー制御演算子</span> PHP では、エラー制御演算子 @ を式の前に置くと、式内に存在する可能性のあるエラーはブロックされます。

@ の使用については、@ 演算子は式の前に配置した場合にのみ有効になることに注意する必要があります。たとえば、@ 演算子は変数や関数の前に使用できます。 、定数などは、関数またはクラスの定義の前に配置することはできません。また、条件構造ステートメントの前に配置することもできません。


例は次のとおりです:

<?php
    $link = @mysqli_connect("127.0.0.1", "my_user", "my_password", "my_db") or die(&#39;数据库连接失败!&#39;);
?>
ログイン後にコピー

出力結果:



上記の例では、次のことができます。 @ Error 制御演算子が表示されます。これは式の前に式をマスクできます。

PHP でエラー処理関数とエラー マスキングをカスタマイズする方法をご存知ですか?

  • error_reporting()

    関数を使用してエラーをシールドする##PHP PHP には多くのエラー レベルがあります。error_reporting() 関数を使用して、PHP が報告するエラーの種類を設定できます。関数の構文形式は次のとおりです:

    error_reporting(设置错误级别)
    ログイン後にコピー

    エラー レベルについては、こちらをご覧ください。これらについては、前回の記事「
  • PHP のエラーの種類とエラー レベルについて詳しく紹介します。次に、例を通して関数の使用方法を見てみましょう:

<?php
    error_reporting(0);
    $link = mysqli_connect("127.0.0.1", "my_user", "my_password", "my_db") or die(&#39;数据库连接失败!&#39;);
?>
ログイン後にコピー
出力結果:



PHP でエラー処理関数とエラー マスキングをカスタマイズする方法をご存知ですか?
##display_errors

パラメータを使用してエラーをマスクする
  • この方法は最も完全な方法です。最初の 2 つの方法は単一行または単一ファイルでのみ機能しますが、display_errors パラメータによるエラーのマスクはすべての PHP ファイルで機能します。どうするか、やってみよう。 まず、php.ini

    構成ファイルを開いてから、display_errors を見つけ、その値を Off に設定して、すべての PHP エラー レポートをオフにする必要があります。
  • (前回の記事「PHPでファイルをアップロードする方法?読めばわかる!」では、phpとiniの設定ファイルを削除する方法について関連知識を紹介しました)

    例は次のとおりです。

    PHP でエラー処理関数とエラー マスキングをカスタマイズする方法をご存知ですか?

    この方法でエラーをブロックできます。

    ご興味がございましたら、「PHP ビデオ チュートリアル 」をクリックして、PHP の知識をさらにご覧ください。

以上がPHP でエラー処理関数とエラー マスキングをカスタマイズする方法をご存知ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!