传智播客 韩顺平 php从入门到精通 7999讲异常处理与进阶课堂笔记.docx

上传人:b****4 文档编号:2969319 上传时间:2022-11-16 格式:DOCX 页数:40 大小:442.54KB
下载 相关 举报
传智播客 韩顺平 php从入门到精通 7999讲异常处理与进阶课堂笔记.docx_第1页
第1页 / 共40页
传智播客 韩顺平 php从入门到精通 7999讲异常处理与进阶课堂笔记.docx_第2页
第2页 / 共40页
传智播客 韩顺平 php从入门到精通 7999讲异常处理与进阶课堂笔记.docx_第3页
第3页 / 共40页
传智播客 韩顺平 php从入门到精通 7999讲异常处理与进阶课堂笔记.docx_第4页
第4页 / 共40页
传智播客 韩顺平 php从入门到精通 7999讲异常处理与进阶课堂笔记.docx_第5页
第5页 / 共40页
点击查看更多>>
下载资源
资源描述

传智播客 韩顺平 php从入门到精通 7999讲异常处理与进阶课堂笔记.docx

《传智播客 韩顺平 php从入门到精通 7999讲异常处理与进阶课堂笔记.docx》由会员分享,可在线阅读,更多相关《传智播客 韩顺平 php从入门到精通 7999讲异常处理与进阶课堂笔记.docx(40页珍藏版)》请在冰豆网上搜索。

传智播客 韩顺平 php从入门到精通 7999讲异常处理与进阶课堂笔记.docx

传智播客韩顺平php从入门到精通7999讲异常处理与进阶课堂笔记

    php中错误和异常处理的机制

如果没有错误处理机制怎样?

php

    //打开文件-

    $fp=fopen(“aaa.txt”,”r”);

    echo“ok”;

?

>

上面的代码没有处理错误,应当这样写程序更加健壮.

php

    //$fp=fopen("aaa.txt","r");

    //echo"ok";

    //1.判断文件是否存在.

    //2.绝对路径和相对路径

    if(!

file_exists("aaa.txt")){

          echo"文件不存在!

";

          exit();

    }else{

          $fp=fopen("aaa.txt","r");

          echo"文件打开成功";

          //....关闭

          fclose($fp);

    }

?

>

解释了一下绝对路径和相对路径

php处理错误的三种方法

1.    使用简单的die语句

使用方法如下:

(1)

if(!

file_exists("aaa.txt")){

          die("文件不存在");

    }else{

          //打开文件操作

    }

    echo"ok";

(2)更简单的方法

file_exists("aaa.txt")ordie("文件不存在!

!

!

");

5 分钟前上传

下载附件(53.76KB)

    用户自定义错误处理器

在php中对错误有不同的级别区分:

2 分钟前上传

下载附件(48.24KB)

案例入门:

php

    //定义了一个函数(我用于处理错误的函数)

    functionmy_error($errno,$errmes){

          echo"$errno
";

          echo"错误信息是:

";

          exit();

    }

    //改写set_error_handler处理器

    //下面这句话的含义是:

如果出现了E_WARNING这个级别的错误,就去调用my_error函数.

    set_error_handler("my_error",E_WARNING);

    $fp=fopen("aa.txt","r");

    

?

>

原理图:

2 分钟前上传

下载附件(45.49KB)

    错误触发器

需求:

有一段代码:

如果接受一个年龄,如果年龄输入>120,我认为就是一一个错误.

//传统的方法

if($age>120){

    echo“年龄过大”;

    exit();

}

//需求,输入一个薪水,如果大于10000,我认为有是错误.

if($salary>10000){

    echo“薪水多”;

    exit();

}

1现在我们可以使用自定义错误触发器来完成!

快速入门案例:

//自定义错误函数

    function  my_error3($errno,$errmes){

          echo"错误号是:

".$errno;

    }

    functionmy_error4($errno,$errmes){

          echo"出大事了".$errno;

          exit();

    }

    //指定E_USER_WARNING错误级别的函数

    set_error_handler("my_error3",E_USER_WARNING);

    set_error_handler("my_error4",E_USER_ERROR);

    

    $age=700;

    if($age>120){

          //调用触发器,时候同时指定错误级别.

          trigger_error("输入年龄过大1",E_USER_ERROR);

          //exit();

    }

    echo"ok";

原理图

    php错误日志保存

保存错误日志的用处是便于,后续分析.

基本方法是使用error_log来实现.

基本用法是:

//自定义错误函数

    function  my_error3($errno,$errmes){

          $err_info="错误号是:

".$errno."--".$errmes;

          echo$err_info;

          //把这个错误信息保存

          //\r\n表示向文件输入一个回车换行

          //
表示向网页输出一个回车换行

          error_log($err_info."\r\n",3,"d:

/myerr.txt");

    }

现在我们要把时间保存下来.

    php中处理异常

①  基本语法

try{

    //可能出现错误或是异常的代码

}catch(Exceptione){

    //对异常处理

//1.自己处理

//2.自己不处理,将其抛出.

}

思考一个问题?

怎样可以去有效的控制多条可能出现错误或是异常的代码?

程序

try{

//第一句话o

//...

//....

}catch(Exception$e)

{

    //处理[根据处理

}

现在我们看看使用异常处理机制,怎样做?

!

!

!

!

!

!

!

!

!

!

快速入门案例:

//我们使用异常机制

    try{

          addUser("shunping");

          updateUser("xxx");

    }

    //catch捕获  Exception是异常类(是php定义好一个类)

    catch(Exception$e){

          //echo"失败信息=".$e->getMessage();

          throw$e;

    }

    functionaddUser($username){

          

          if($username=="shunping"){

              //添加ok

          }else{

              //添加error

              //抛出异常.

              thrownewException("添加失败");

          }

    }

    functionupdateUser($username){

          if($username=="xiaoming"){

              //正常修改

          }else{

              thrownewException("修改失败");

          }

    }

异常使用的注意事项:

通过上面的案例,我们可以看出,使用

try{

    //代码

}catch(Exception$e){

    //对异常处理

}

这种方式,可以更有效的控制错误.所以在开发中大量的使用.

1.    当捕获到一个异常后,try{}块里的后续代码不继续执行.

2.    如果有一个异常发生,但是你没有catch捕获,则提示一个UncatchedException.(系统.)

3.    当catch一个异常,你可以处理,也可以不处理,不处理就可以

thrownewException(”信息”);

代码:

try{

          a2("hello");

    }catch(Exception$e){

          //获取.

          //echo$e->getMesage();

          //可以继续抛出,这时将会启动php默认的异常处理器来处理

          //你可以自己定义一个顶级异常处理.

          throw$e;

    }

4.    你可以自定义异常类

classMyExceptionextendsException{

    

}

6.使用多个catch代码块可以捕获不同种类的异常

try{

    //代码....

  //第一句话

  //第二句话

}catch(PDOException$e){

    //

}catch(Exception$e){

|

}

7.也可简单使用Exception捕获

代码说明:

php

    

    //定义了一个异常

    classMyException1extendsException{

          

    }

    classMyException2extendsException{

    

    }

    functionA(){

          

          thrownewMyException1("a");

    }

    functionB(){

          thrownewMyException2("b")

    }

    functionC(){

          

          try{

              A();//抛出MyException1

              B();//抛出MyException2

          }catch(Exception1$e1){

              $e1->getMessage();

          }catch(Exception2$e2){

              $e2->getMesage();

          }

    }

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1