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错误异常处理

 


相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...