PHP中的错误与异常处理

本文探讨了PHP中的错误和异常处理。异常是预知的问题,手动抛出,如除数为0。错误则包括Warning、Notice等,不能被try-catch捕获。错误级别有差异,可通过error_reporting()、set_error_handler()和register_shutdown_function()进行处理。但register_shutdown_function()无法捕获Parse Error和Fatal Error,需要特殊处理。
摘要由CSDN通过智能技术生成

try{
	echo 1%0;
}catch(Exception $e){
	echo $e->getMessage();
}

如上代码,一直以为Exception是可以捕获到异常,实际上不能。以下内容指的是PHP5的环境。

PHP异常

什么是异常

在PHP中异常指的是可以预料到的问题,PHP只能手动抛出异常,例如被除数为0,错误的数据类型,数据库连接错误都不属于异常,而属于错误,所以在PHP5中异常处理确实很鸡肋。

异常捕获

try{
	throw new Exception('This is a execption');
}catch(Exception $e){
	echo $e->getMessage();
}

PHP错误

什么是错误

首先warning、notice都是错误。错误属于php脚本自身的问题,大部分情况是由错误的语法,服务器环境导致,使得编译器无法通过检查,甚至无法运行的情况。只是他们的级别不同而已,并且错误是不能被try-catch捕获。

错误的级别

Fatal Error:致命错误(脚本终止运行)
	E_ERROR         // 致命的运行错误,错误无法恢复,暂停执行脚本
	E_CORE_ERROR    // PHP启动时初始化过程中的致命错误
	E_COMPILE_ERROR // 编译时致命性错,就像由Zend脚本引擎生成了一个E_ERROR
	E_USER_ERROR    // 自定义错误消息。像用PHP函数trigger_error(错误类型设置为:E_USER_ERROR)

Parse Error:编译时解析错误,语法错误(脚本终止运行)
	E_PARSE  //编译时的语法解析错误

Warning Error:警告错误(仅给出提示信息,脚本不终止运行)
	E_WARNING         // 运行时警告 (非致命错误)。
	E_CORE_WARNING    // PHP初始化启动过程中发生的警告 (非致命错误) 。
	E_COMPILE_WARNING // 编译警告
	E_USER_WARNING    // 用户产生的警告信息

N
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值