hi,你好!欢迎访问本站!登录
本站由简数采集腾讯云宝塔系统阿里云强势驱动
当前位置:首页 - PHP问题 - 正文 请牢记本站网址www.sosophp.cn

php非常处置惩罚和错误处置惩罚区分【php问题】

2019-11-27PHP问题搜搜PHP网57°c
A+ A-
"毛病"和"非常"的观点十分相似,很轻易殽杂,"毛病"和"非常"都表清楚明了项目出了题目,都邑供应相干的信息,而且都有毛病范例。

但是,"非常机制"是在"毛病机制"后才涌现的,"非常"是防止"毛病"的不足。(引荐进修:PHP编程从入门到通晓)

比较重要的一点就是由于"毛病"的信息不雄厚,我们见过最多的函数申明就是: 胜利时刻返回***, 毛病的时刻返回FALSE, 但是一个函数失足的缘由能够有多种, 失足的品种更有多种. 一个简朴的FALSE, 并不能把细致的毛病信息通知挪用者.

PHP中将代码本身非常(平常是环境或许语法不法而至)成为毛病,将运转中涌现的逻辑毛病称为非常(Exception)毛病是没法经由过程代码处置惩罚的,而非常则能够经由过程try/catch处置惩罚。

非常

非常是Exception类的对象,在碰到没法修复的状态时抛出,涌现题目时,非经常使用于主动出击,托付职责,非常还可用于戍守,展望潜伏的题目,减轻其影响。

Exception对象有两个重要的属性:一个是音讯,另一个是数字代码。我们离别能够用getCode()和getMessage()猎取这两个属性。

非常处置惩罚顺序

那末我们应当怎样捕捉每一个能够抛出的非常呢?PHP许可我们注册一个全局非常处置惩罚顺序,捕捉一切未被捕捉的非常。非常处置惩罚顺序运用set_exception_handler()函数注册(这里运用匿名函数)。

set_exception_handler(function (Exception $e)
{
	echo "我本身定义的非常处置惩罚".$e->getMessage();
});
throw new Exception("this is a exception");
 
//运转效果:我本身定义的非常处置惩罚this is a exception

毛病

除了非常以外,PHP还供应了用于报告毛病的函数。PHP能触发差别范例的毛病,比方致命毛病、运转时毛病、编译时毛病、启动毛病以及用户触发的毛病。能够在php.ini中设置毛病报告体式格局(这里不做多的诠释)

毛病处置惩罚顺序

与非常处置惩罚顺序一样,我们也能够运用set_error_handler()注册全局毛病处置惩罚顺序,运用本身的逻辑体式格局阻拦并处置惩罚PHP毛病。我们要在毛病处置惩罚顺序中挪用die()或exit()函数。假如不挪用,PHP脚本会从失足的处所继承向下实行。以下:

set_error_handler(function ($errno,$errstr,$errfile,$errline)//经常使用的四个参数
{
	echo "毛病品级:".$errno."<br>毛病信息:".$errstr."<br>毛病的文件名:".$errfile."<br>毛病的行号:".$errline;
	exit();
});
 
trigger_error("this is a error");//自行触发的毛病
 
echo '一般';

以上就是php非常处置惩罚和毛病处置惩罚区分的细致内容,更多请关注ki4网别的相干文章!

  选择打赏方式
微信赞助

打赏

QQ钱包

打赏

支付宝赞助

打赏

  选择分享方式
  移步手机端
php非常处置惩罚和错误处置惩罚区分【php问题】

1、打开你手机的二维码扫描APP
2、扫描左则的二维码
3、点击扫描获得的网址
4、可以在手机端阅读此文章
标签: