Heim  >  Artikel  >  Backend-Entwicklung  >  Wissen Sie, wie Sie Fehlerbehandlungsfunktionen und Fehlermaskierung in PHP anpassen können?

Wissen Sie, wie Sie Fehlerbehandlungsfunktionen und Fehlermaskierung in PHP anpassen können?

WBOY
WBOYOriginal
2021-10-21 17:57:382460Durchsuche

Im vorherigen Artikel habe ich Ihnen „Erklären Sie die Fehlertypen und Fehlerstufen von PHP“ vorgestellt, in dem die Fehlertypen und Fehlerstufen in PHP ausführlich vorgestellt wurden Fehlerbehandlung und das Blockieren von Fehlern in PHP, ich hoffe, es wird für alle hilfreich sein!

Wissen Sie, wie Sie Fehlerbehandlungsfunktionen und Fehlermaskierung in PHP anpassen können?

In unserer täglichen Entwicklung ist es unvermeidlich, auf Fehler zu stoßen. Manchmal können wir eine Funktion als Fehlerbehandlungsfunktion angeben. In PHP gibt es eine benutzerdefinierte Fehlerbehandlungsfunktion.

<strong><span style="font-size: 20px;">set_error_handler() </span></strong>Benutzerdefinierte Funktion zur Fehlerbehandlung

<strong><span style="font-size: 20px;">set_error_handler() </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();
?>

输出结果:

Wissen Sie, wie Sie Fehlerbehandlungsfunktionen und Fehlermaskierung in PHP anpassen können?

我们在使用此函数时需要注意的是,只用这种方式来进行错误处理,若是函数没有错误的话,或者说程序没有在错误的函数中运行,程序会继续往下执行发生错误的函数语句,因此我们需要使用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();
    }
?>

输出结果:

Wissen Sie, wie Sie Fehlerbehandlungsfunktionen und Fehlermaskierung in PHP anpassen können?

错误屏蔽

在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;);
?>

输出结果:

Wissen Sie, wie Sie Fehlerbehandlungsfunktionen und Fehlermaskierung in PHP anpassen können?

在上述示例中,看得出通过@错误控制运算符,在表达式前能够屏蔽表达式。

  • 使用 error_reporting() 函数屏蔽错误

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;);
?>

输出结果:

Wissen Sie, wie Sie Fehlerbehandlungsfunktionen und Fehlermaskierung in PHP anpassen können?

  • 通过 display_errors 参数屏蔽错误

这种方法时最彻底的一种方法,前面两种方法只作用于单行或者单个文件,但是通过display_errors 参数屏蔽错误是作用在所有的PHP文件,那我们一起来看一下应该怎么操作吧。

首先我们需要打开php.iniPHP stellt die Funktion set_error_handler() bereit, mit der eine Funktion als Fehlerbehandlungsfunktion angegeben wird. Das Syntaxformat lautet wie folgt:

rrreee🎜 Darunter , die benutzerdefinierte Funktion. Das Syntaxformat dieser benutzerdefinierten Funktion lautet wie folgt: 🎜rrreee🎜Wenn zuvor ein Fehlerhandler definiert wurde, ist der zurückgegebene Programmname der Programmname des geänderten Programms; , das zurückgegebene Ergebnis ist NULL. Wenn eine ungültige Callback-Funktion angegeben ist, wird auch NULL zurückgegeben.
🎜🎜Als nächstes schauen wir uns ein Beispiel an, passen eine Fehlerbehandlungsfunktion an und verwenden sie, um Fehler im Programm zu behandeln:
🎜rrreee🎜Ausgabeergebnis:
/>🎜 🎜Wissen Sie, wie Sie Fehlerbehandlungsfunktionen und Fehlermaskierung in PHP anpassen können?🎜 🎜Wir sind hier. Bei der Verwendung dieser Funktion ist zu beachten, dass die Fehlerbehandlung nur auf diese Weise erfolgt, wenn kein Fehler in der Funktion vorliegt oder das Programm nicht in der falschen Funktion ausgeführt wird Die Funktionsanweisung, in der der Fehler aufgetreten ist, also müssen wir die Funktion die() verwenden, um die Funktion zu beenden.
🎜🎜In unserer täglichen Entwicklung können Ausnahmen im Programm nicht automatisch ausgelöst werden. Zu diesem Zeitpunkt können wir auch set_error_handler() verwenden, um Ausnahmen anzupassen und als Fehler zu behandeln, sodass wir die benutzerdefinierte Fehlerbehandlung zum automatischen Abfangen verwenden können Ausnahmen. 🎜🎜Das Beispiel sieht wie folgt aus: 🎜rrreee🎜Ausgabeergebnis:
🎜🎜Wissen Sie, wie Sie Fehlerbehandlungsfunktionen und Fehlermaskierung in PHP anpassen können?🎜🎜Fehlerabschirmung🎜🎜Im PHP-Entwicklungsprozess , wir können nicht nur die Fehlerbehandlungsfunktion über set_error_handler() anpassen, um Fehler zu behandeln. In einigen Fällen ist auch eine Fehlermaskierung unerlässlich. Als nächstes werde ich einige Methoden zur Fehlerabschirmung auflisten. 🎜
  • 🎜<span style="font-size: 16px;"><strong>@</strong></span> Code>---Fehlerkontrolloperator🎜
🎜In PHP, Kontrollfehler Wenn der Operator Wird @ vor einen Ausdruck gesetzt, werden eventuell im Ausdruck vorhandene Fehler maskiert.
🎜🎜 Bezüglich der Verwendung von @ müssen wir beachten, dass der @-Operator nur wirksam wird, wenn er vor einem Ausdruck platziert wird. Der @-Operator kann beispielsweise vor Variablen, Funktionen, Konstanten usw. verwendet werden. usw., darf aber nicht vor der Definition einer Funktion oder Klasse und auch nicht vor einer bedingten Strukturanweisung platziert werden. 🎜🎜Das Beispiel sieht wie folgt aus:
🎜rrreee🎜Ausgabeergebnis:
🎜🎜Wissen Sie, wie Sie Fehlerbehandlungsfunktionen und Fehlermaskierung in PHP anpassen können?🎜🎜Im obigen Beispiel ist ersichtlich, dass der Ausdruck vor dem Ausdruck durch den Steueroperator @error maskiert werden kann. 🎜
  • 🎜Verwenden Sie die Funktion error_reporting() , um Fehler maskieren 🎜
🎜Es gibt viele Fehlerstufen in PHP, um festzulegen, welche Art von Fehlern PHP meldet lautet wie folgt: 🎜rrreee🎜Über Die Fehlerebene wird im vorherigen Artikel „🎜Erklären Sie die Fehlertypen und Fehlerebenen von PHP“ ausführlicher vorgestellt. Schauen wir uns als Nächstes die Verwendung der Funktion an ein Beispiel:
🎜rrreee🎜Ausgabeergebnisse:
🎜🎜Wissen Sie, wie Sie Fehlerbehandlungsfunktionen und Fehlermaskierung in PHP anpassen können?
🎜
  • 🎜Bydisplay_errors Parametermaskierungsfehler🎜
🎜Diese Methode ist die gründlichste Methode. Die ersten beiden Methoden funktionieren nur bei a einzelne Zeile oder eine einzelne Datei, aber sie werden durch den display_errors-Parameter maskiert. Der Fehler betrifft alle PHP-Dateien, also schauen wir uns an, was zu tun ist. 🎜🎜Zuerst müssen wir die Konfigurationsdatei php.ini öffnen, dann display_errors suchen und den Wert auf „Aus“ setzen, um alle PHP-Fehlerberichte zu deaktivieren. 🎜

(Im vorherigen Artikel „Wie lade ich Dateien in PHP hoch? Nach dem Lesen werden Sie es verstehen! “ wurden die relevanten Kenntnisse zum Entfernen von PHP- und INI-Konfigurationsdateien vorgestellt.)

Das Beispiel lautet wie folgt:

Wissen Sie, wie Sie Fehlerbehandlungsfunktionen und Fehlermaskierung in PHP anpassen können?

Auf diese Weise können Sie Wrong blockieren.

Bei Interesse können Sie auf „PHP-Video-Tutorial“ klicken, um mehr über PHP-Kenntnisse zu erfahren.

Das obige ist der detaillierte Inhalt vonWissen Sie, wie Sie Fehlerbehandlungsfunktionen und Fehlermaskierung in PHP anpassen können?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn