이전 글에서는 "PHP의 오류 유형과 오류 수준을 이해하세요"를 가져왔는데, 여기서는 PHP의 오류 유형과 오류 수준을 자세히 소개했습니다. 오류 처리 및 PHP에서 오류를 차단하는 방법이 모든 사람에게 도움이 되기를 바랍니다!
일상적인 개발에서는 오류가 발생하는 것이 불가피합니다. 때때로 PHP에는 오류 처리 기능으로 함수를 지정할 수 있습니다.
<strong><span style="font-size: 20px;">set_error_handler() </span></strong>
함수 사용자 정의 오류 처리 함수<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('something error'); } set_error_handler("error_handler"); strpos(); ?>
输出结果:
我们在使用此函数时需要注意的是,只用这种方式来进行错误处理,若是函数没有错误的话,或者说程序没有在错误的函数中运行,程序会继续往下执行发生错误的函数语句,因此我们需要使用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('something error'); } set_error_handler("error_handler"); /* 触发异常 */ try { $a = 5/0;//程序会自动捕捉这个异常,并且由自定义函数来处理 echo $a; } catch(Exception $e) { echo $e->getMessage(); } ?>
输出结果:
错误屏蔽
在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('数据库连接失败!'); ?>
输出结果:
在上述示例中,看得出通过@错误控制运算符,在表达式前能够屏蔽表达式。
使用 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('数据库连接失败!'); ?>
输出结果:
通过 display_errors
参数屏蔽错误
这种方法时最彻底的一种方法,前面两种方法只作用于单行或者单个文件,但是通过display_errors 参数屏蔽错误是作用在所有的PHP文件,那我们一起来看一下应该怎么操作吧。
首先我们需要打开php.ini
<span style="font-size: 16px;"><strong>@</strong></span> code>---오류 제어 연산자🎜
error_reporting()
함수를 사용하여 다음을 수행하세요. 마스크 오류 🎜display_errors
매개변수 마스킹 오류🎜php.ini
구성 파일을 연 다음, display_errors를 찾고 해당 값을 Off로 설정하여 모든 PHP 오류 보고를 꺼야 합니다. 🎜(이전 글 "PHP에서 파일을 업로드하는 방법? 읽어보시면 이해되실 겁니다! "에서 php, ini 구성 파일 삭제 방법에 대한 관련 지식을 소개했습니다.)
예제는 다음과 같습니다.
이렇게 하면 Wrong을 차단할 수 있습니다.
관심이 있으시면 "PHP 비디오 튜토리얼"을 클릭하여 PHP 지식에 대해 자세히 알아볼 수 있습니다.
위 내용은 PHP에서 오류 처리 기능과 오류 마스킹을 사용자 정의하는 방법을 알고 계십니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!