38. PHP 错误与异常处理(2)

这里写图片描述

错误类型:
1.语法错误
2.环境错误{权限、打开文件失败、数据库服务器不可用}
3.逻辑错误(比较难排查),比如本来是用==,变成用赋值 =  // 用单元测试

PHP 错误级别
这里写图片描述
这里写图片描述
这里写图片描述


1. deprecated 最低级别错误

if(ereg('wjh','weijianhua wjh ni hao ',$matches)){
    print_r($matches);
}else{
    echo 'nothing find';
}

这里写图片描述

echo mysql_escape_string('\' or 1=1#');

这里写图片描述


2. notice 通知级别错误

header('Content-Type:text/html;charset=utf-8');
echo $king;

echo '程序继续执行';

这里写图片描述

$userInfo = array('username'=>'king','age'=>12);
echo $userInfo['username'];
echo '<hr/>';
echo $userInfo[age];
echo '程序继续执行';

这里写图片描述


3. warning 警告级别错误

settype($var,'int');
var_dump($var);
echo '程序继续执行';

这里写图片描述

settype($var,'int');
var_dump($var);
settype($var,'king');
echo '<hr/>';
var_dump($var);
echo '<hr/>';
echo '程序继续执行';

这里写图片描述


4. Fatal error 级别错误

echo md6('king');
echo '程序继续执行';

这里写图片描述


5. parse error 错误

最高级别的错误,其他有错还看不到。
echo 'aaaa'
echo md6('king');
echo '程序继续执行';

这里写图片描述


6. E_USER_相关的错误

与用户抛出的错误有关。

7. PHP 配置文件中与错误相关的选项
这里写图片描述

错误模块:
这里写图片描述


设置错误级别:
这里写图片描述

1.通过配置文件设置:
这里写图片描述
这里写图片描述
保存后重启服务器。

2.通过动态函数设置

echo error_reporting();//当前错误级别常量,32767
echo '<hr/>';
//显示所有错误
error_reporting(E_ALL);//32767
//error_reporting(E_ALL&~E_NOTICE)

echo error_reporting(E_ALL);

//error_reporting(0);//相当于关闭错误提示,但屏蔽不了解析错误
error_reporting(-1);//显示所有错误
echo $king;

echo '程序继续执行';

这里写图片描述

3.通过运行时设置配置选项的值

ini_set('error_reporting',0);//代表不显示我们的错误
ini_set('error_reporting',-1);//代表显示所有错误
ini_set('display_errors',0);//关闭显示
echo $king;

echo '程序继续执行';

这里写图片描述


是否显示错误:内嵌到脚本中,部署到线上要关闭
这里写图片描述

error_reporting(-1);//显示所有错误
@settype($var,'king'); //@屏蔽错误

8. trigger_error(‘错误信息’,’错误级别’)触发错误

类似于die();

$num1 = 1;
$num2 = '2a';

if(!(is_numeric($num1) && is_numeric($num2)))
{
    trigger_error('num1和num2必须为合法数值',E_USER_NOTICE);// 抛出 notice
    //echo trigger_error('num1和num2必须为合法数值',E_USER_WARNING); // 抛出 warning,
    echo 输出函数的返回值,即错误信息
}else{
    $num1 + $num2;
}

echo '<br/>程序继续执行';

这里写图片描述
这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值