PHP系列(七)PHP错误异常处理
admin
2023-06-16 15:01:49
0

1、Php错误报告级别

1 E_ERROR 致命的运行错误。错误无法恢复,暂停执行脚本。

2 E_WARNING 运行时警告(非致命性错误)。非致命的运行错误,脚本执行不会停止。

4 E_PARSE 编译时解析错误。解析错误只由分析器产生。

8 E_NOTICE 运行时提醒(这些经常是你代码中的bug引起的,也可能是有意的行为造成的。)

 error_reporting = E_ALL & ~E_NOTICE

2、自定义php错误报告方式

set_error_handler("myerrorfun");

$mess ="";

function  myerrorfun($error_type,$error_message,$error_file,$error_line){

            global $mess;

            $mess.="发生错误级别为{$error_type}类型、错误消息{$error_message},在文件夹{$error_file},第{$error_line}行。
";

}

getType($a);

echo"$mess";

显示为:发生错误级别为8类型、错误消息Undefined variable: a,在文件夹C:\AppServ\www\index.php,第9行。

 set_error_handler($_type,$_message,$_errfile,$_errline) 函数设置用户自定义的错误处理程序,然后触发错误

 

3、php记录错误日志

log_errors = on 开启php日志

error_log =syslog  将php日志写到系统上去。

error_log = “c:/lamp/php_error.log”;自已指定一个存放目录、与上面相斥

ini_set(“log_errors”,“on”); 在php开发文件里设置

 

try{

            echo"开始";

            run();

}catch(Exception $e){

            echo$e->getMessage()."
";

}

//当try{}里面不成功就抛出catch里面的异常

 

4、自定义异常类

//自定义异常类、必须是系统类Exception的子类

//如果继承Exception类、重写了构造方法、一定要调一下父类中被覆盖的方法/

class  MyBtException extends  Exception{

            function__construct($mess){

                       parent::__construct($mess);

            }

            functionchangBt(){

                       echo"换个备胎";

            }

}

try{

            throw  new  MyBtException("车子胞胎");

            echo"路况很好!";

}catch(MyBtException $e){

            Echo  $e->getMessage()."
";

            $e->changBt()."
";

}

5、自定义多个异常类

            //写出对应这个异常解决方法, 就是一下正常类的结构

            class MyBtException  extends  Exception{

                       function__construct($mess) {

                                   parent::__construct($mess);

                       }

                       functionchangBt() {

                                   echo"换上备胎!";

                       }

            }

            class  WcException  extends  Exception {

                       functionpro() {

                                   echo"去公厕
";

                       }

            }

            class  NoException  extends  Exception {

                       functionpro() {

                                   echo"买面色凑合一下!
";

                       }

            }

            Class  FlException  extends  Exception {

                       functionpro() {

                                   echo"走小路!
";

                       }

            }


class  Dm  {

            function gowc($bj) {

                       if(!$bj){

                                   throw new WcException("马桶不好用了");

                       }

                       echo"哈哈,事儿办的很成功!
";

            }

 

            function eat($time) {

                       if(!$time){

                                   thrownew NoException("起来晚了,早餐没了!");

                       }

                       echo"吃的很好!
";

            }

            function dri($dz) {

                       if(!$dz){

                                   throw new  MyBtException("爆胎了");

                       }

                       echo"车开的不错!
";

            }

            function run($yu) {

                       if(!$yu){

                                   throw new  FlException("天下雪了, 高速封路了");

                       }

                       echo"高速很好走!
";

            }

}

echo "早上起床
";


try{

            $dm =new  Dm();

            // 1. 上厕所  (马桶不好用了),去公厕

            $dm-> gowc(true);

            // 2. 吃早餐 (没有早点),买面包

            $dm-> eat(true);

            //3. 开车上班 (爆tai)         换下

            $dm->dri(true);

 

            //4. 上高速  (下雪)  小路

            $dm->run(false);

} catch(MyBtException  $e) {   //  Exception $e = newException('');

            echo$e->getMessage()."
";

            //自定义类中的解决方法调用,解决了问题

            $e->changBt()."
";

            try {

            }catch(Exception$e) {

            }

} catch(NoException $e) {

            echo$e->getMessage()."
";

            $e->pro();

} catch(WcException $e) {

            echo$e->getMessage()."
";

            $e->pro();

} catch(Exception $e) {

            echo$e->getMessage()."
";

            //$e->pro();

}

            echo"到公司开始工作
";

微信扫一扫 、关注公众号

   不定时分享资料视频

PHP系列(七)PHP错误异常处理

 


相关内容

热门资讯

毫厘间的山河:0.001%背后... 元素周期表的版图上,锌,是一块古老而平凡的疆域。但当它的纯度跃升至99.998%时,这块金属便被赋予...
朝鲜进行新型武器系统试射 当地时间5月26日,朝鲜导弹总局和国防科学院进行轻型多用途导弹发射系统和多管战术巡航导弹武器系统试验...
原创 华... 华为各大产品全面发展,而且是多系列多版本,其中手机/笔记本均拥有4个系列,平板/手表均拥有6个系列,...
俄法院裁定:立即赔偿俄约200... △俄罗斯中央银行(资料图)当地时间5月26日,俄罗斯莫斯科仲裁法院批准俄央行的申请,将对欧洲清算银行...
特朗普:内阁会议将由戴维营改至... 当地时间5月26日,美国总统特朗普在社交平台发文称,由于预计次日天气状况不佳,原定在戴维营举行的内阁...
江苏省内首次!变电站装上了“智... 扬子晚报网5月26日讯(记者 刘丽媛)5月25日,江苏南京220千伏光华变电站完成一项特殊改造——在...
NbS暑期学校广州开班!国内外... 南都讯 记者莫郅骅 5月26日,2026基于自然的解决方案(NbS)暑期学校在广州开班。该活动由自然...
一场训练营,孵化112个创新项... AI赋能民生、科创点亮青春! 从课堂灵感孵化的音乐记忆AI工具 到深耕水产行业的智能经营助手 一批贴...
潮评丨原创精神无法“一键生成” 潮新闻客户端 评论员 高路 图源:央视新闻。 继“查重”以后,检测AIGC(人工智能生成内容)率也...
马斯克曝光Grok 5!1.5... 新智元报道 【新智元导读】马斯克深夜官宣:1.5万亿参数Grok V9训练完成,现役三倍!更狠的是...