php程序的错误分为三个方向:
1.语法错误(脚本停止运行)
2.运行时错误(输出错误,脚本继续运行)
3.逻辑错误(既不影响脚本的运行,也不输出错误,这种错误是代码内部逻辑错误,一般难查找)
错误级别有三种:
1.注意
2.警告
3.严重错误
总结:语法错误属于严重错误,会终止脚本的运行,而运行时的错误属于注意和警告级别,不会影响运行
错误级别的设置有两种方法:
1.php.ini文件中 error_reporting = E_ERROR
2.系统函数: error_reporting(E_ERROR)
使用第一种方法,作用的范围是任何一个脚本。而第二种方法,作为范围是当前所在脚本
错误提示的两种方式:
1.php.ini配置文件中属性:display_error = On
当属性值为On时,当在运行的脚本中出现错误时,浏览器会显示显示相应的错误
2.php.ini配置文件属性: error_log = 'file',错误会记录在相应的文件中
开发时会:display_error = On,上线后则会:display_error = Off
另外,除了系统指定的错误处理,我们还可以自定义自己的错误处理函数,注意使用函数:set_error_handle()来注册
自己的错误处理函数
例:
set_error_handle('myerror');
/*
param1: $error string --- 错误类型
param2: $message string --- 错误消息
param3: $line string ---- 错误行数
param4: $file string ----- 错误文件
*/
function myerror($error_type,$message,$line,$file)
{
echo "发生错误级别为{$error_type}类型,错误消息{$error_message},在文件{$error_file}中,
第{$error_line}行";
}
异常处理:程序运行时出现的意外
工作原理:
1.执行try中的代码,如果没有问题,继续执行catch之后的代码
2.Exception 是系统的类
3.如果有异常对象抛出,就将异常对象给catch中的类
4.发生异常位置的代码不在执行,而是直接执行catch后的代码
5.一个try和至少对应一个catch,多异常中最后一个catch往往放置基类Exception
很多人会想错误和异常有什么区别?
对于这个问题,我是这么想的。第一,错误可以用异常来抛出,这点是非常重要的,说明我们可以通过扩展异常类,
可以友好的展示我们的错误信息。
第二,错误常常只是提示个错误消息,而异常往往有解决错误的方案。