PHP 错误处理
PHP 错误处理
在PHP编程中,很常见的一个操作是处理各种错误。PHP提供了一些内置的函数,可以让我们更好地处理和解决这些错误问题。本篇文章将介绍PHP中常用的错误处理方法以及如何处理这些错误。
错误报告
当PHP代码运行时,如果出现错误,PHP会显示一个错误报告。默认情况下,这个错误报告包含了E_ERROR、E_WARNING、E_PARSE、E_NOTICE 以及E_CORE_ERROR等错误。
PHP中有多种方式可以配置错误报告的方法。其中一种是在php.ini文件中配置,找到error_reporting并设置相应的错误级别。如果不想更改php.ini的配置,也可以在PHP文件中使用 error_reporting 函数来控制报错级别。
// 设置报错级别
error_reporting(E_ALL);
// 关闭报错
error_reporting(0);
错误类型
PHP 中的错误分为几种类型:
- E_ERROR:由于严重的程序错误而导致的致命错误,程序会停止运行。
- E_WARNING:非致命性错误,只是给开发者一个警告,程序会继续运行。
- E_PARSE:由于语法错误而导致的错误,程序会停止运行。
- E_NOTICE:警告开发者可能会出现问题,但不会导致程序停止运行。
- E_CORE_ERROR:由于 PHP 启动无法加载基本函数库而导致的致命错误。
错误处理函数
PHP 提供了一些错误处理函数,这些函数可以让程序在出现错误时具有更好的控制和处理。这些函数可以根据我们的需求,自定义错误处理的方式,并返回我们所需的错误信息。
- error_handler:自定义错误处理函数,用于处理 ‘E_WARNING’、‘E_NOTICE’、‘E_USER_WARNING’ 以及’ E_USER_NOTICE’ 级别的错误。
- trigger_error:可以手动触发错误,用于处理’E_USER_ERROR’ 以及’E_USER_NOTICE’ 级别的错误。
- set_error_handler:设置自定义的错误处理函数。
- restore_error_handler:恢复系统默认的错误处理方式,取消绑定自定义错误处理函数。
function custom_error_handler($error_no, $error_message, $error_file, $error_line, $error_context) {
// Do something
}
set_error_handler('custom_error_handler');
异常处理
异常处理是PHP中比较新的错误处理方式,它允许程序在出现错误时,通过手动throw一个异常,来中断程序。
在PHP中,有两个内置的类,Exception和 ErrorException,我们可以使用这两个类来抛出异常并进行异常处理。
class CustomException extends Exception {
public function errorMessage() {
// error message
$errorMsg = 'Error on line ' . $this->getLine() . ' in ' . $this->getFile() . ': <b>' . $this->getMessage() . '</b> is not a valid E-Mail address';
return $errorMsg;
}
}
$email = "someone@example.com";
try {
// Check if
if(filter_var($email, FILTER_VALIDATE_EMAIL) === FALSE) {
// throw custom exception
throw new CustomException($email);
}
}
catch (CustomException $exception) {
//display custom message
echo $exception->errorMessage();
}
总结
对于初学者来说,PHP的错误处理可能会让人感到无从下手。然而,了解PHP的错误处理技术是非常重要的。采用适当的错误处理技术,可以使代码更为健壮,程序更为容错。