PHP错误主要分为两大类:常规错误(Error)和异常(Exception)。常规错误主要包括语法错误、运行时错误和逻辑错误。而异常通常是由于程序在运行时遇到了无法处理的错误情况而抛出的。尽管这两种错误都会打断程序的运行,但处理方式却有所不同。
# 常规错误处理
PHP的错误报告级别可以通过`error_reporting()`函数来设定。这个函数可以开启或关闭PHP错误报告的各个级别,例如E_ERROR、E_WARNING、E_NOTICE等。我们也可以通过修改`php.ini`文件来全局设置错误报告级别。
使用`set_error_handler()`函数,我们可以定义一个自定义的错误处理函数。这个函数将会在PHP遇到错误时被调用。例如:
```php
function customError($errno, $errstr) {
echo "Error: [$errno] $errstr";
}
set_error_handler("customError");
```
# 异常处理
PHP 5引入了异常处理机制。当异常被抛出时,程序的正常流程会被中断。如果异常没有被捕获(catch),那么PHP将显示一个致命错误(Fatal Error)并停止执行。
异常处理主要使用`try`、`catch`和`finally`语句。例如:
```php
try {
throw new Exception('A terrible error has occurred', 42);
}
catch (Exception $e) {
echo "Exception {$e->getMessage()} on line {$e->getLine()} of {$e->getFile()}";
}
finally {
echo "This part is always executed.";
}
```
掌握PHP的错误处理和异常捕获机制,对于编写稳健、可维护的PHP程序至关重要。同时,它也能帮助我们更好地进行问题排查和解决。