免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5428 | 回复: 1
打印 上一主题 下一主题

php异常处理 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-08-07 14:00 |只看该作者 |倒序浏览
代码
  1. <?php
  2.     /*从PHP5开始,php支持异常处理,异常处理是面向对象一个重要特性,php
  3.     代码中的异常通过throw抛出,异常抛出之后,后面的代码将不会在执行
  4.     异常抛出被用于在遇到位置错误,或者不符合预先设定的条件时,通知客户程序
  5.     以便进行其它相关处理,不至于使程序直接报错中断
  6.     当代码中使用了try catch的时候,抛出的异常会在catch中捕获,否则会直接中中断*/
  7.     /*
  8.     1、基本语法
  9.         try{
  10.             //可能出现错误或异常的代码
  11.             //catch表示捕获,Exception是php已定义好的异常类
  12.         } catch(Exception $e){
  13.             //对异常处理,方法:
  14.                 //1、自己处理
  15.                 //2、不处理,将其再次抛出
  16.         }*/
  17.     /*
  18.     2、处理处理程序应当包括:
  19.     Try - 使用异常的函数应该位于 "try"  代码块内。如果没有触发异常,则代码将照常继续执行。但是如果异常被触发,会抛出一个异常。
  20.     Throw - 这里规定如何触发异常。注意:每一个 "throw" 必须对应至少一个 "catch",当然可以对应多个"catch"
  21.     Catch - "catch" 代码块会捕获异常,并创建一个包含异常信息的对象。*/
  22.     function checkNum($number){
  23.         if($number > 1){
  24.             throw new Exception("异常提示-数字必须小于等于1");
  25.         }
  26.         return true;
  27.     }
  28.     try{
  29.         checkNum(2);
  30.         echo '如果你能看到这个提示,说明你的数字小于等于1';
  31.     }catch(Exception $e){
  32.         echo '捕获异常:'.$e->getMessage();
  33.     }
  34.     /*php具有很多异常处理类,其中Exception是所有异常处理的基类
  35.     Exception具有几个基本属性与方法,其中包括了:
  36.     message异常消息内容
  37.     code异常代码
  38.     file抛出异常的文件名
  39.     line抛出异常在该文件中的行数
  40.     其中常用的方法有:
  41.     getTrace获取异常追踪的信息
  42.     getTraceAsString获取异常追踪信息的字符串
  43.     getMessage获取出错信息
  44.     如果必要可以通过继承Exception类来建立子定理的异常处理类*/
  45.     class MyException extends Exception{
  46.         function getInfo(){
  47.             return '自定义错误信息';
  48.         }
  49.     }
  50.     try{
  51.         //使用异常的函数应该位于 "try"  代码块内。如果没有触发异常,则代码将照常继续执行。但是如果异常被触发,会抛出一个异常。
  52.         throw new MyException('error');
  53.         //这里规定如何触发异常。注意:每一个 "throw" 必须对应至少一个 "catch",当然可以对应多个"catch"
  54.     }catch(Exception $e){
  55.         //"catch" 代码块会捕获异常,并创建一个包含异常信息的对象
  56.         echo $e->getInfo();
  57.         echo $e->getMessage();
  58.     }

  59.     /*

  60.     在异常被捕获之后,我们可以通过异常处理对象获取其中的异常信息,前面我们已经了解捕获方式,以及获取基本的错误信息。
  61.     在实际应用中,我们通常会获取足够多的异常信息,然后写入到错误日志中。
  62.     通过我们需要将报错的文件名、行号、错误信息、异常追踪信息等记录到日志中,以便调试与修复问题。
  63.     */
  64.     try{
  65.         throw new Exception('wrong');

  66.     }catch(Exception $e){
  67.         echo '出错啦';
  68.         $msg = 'Error:'.$e->getMessage()."\n";
  69.         $msg .= $e->getTraceAsString()."\n";
  70.         $msg .= '异常所在行:'.$e->getLine()."\n";
  71.         $msg .= '异常所在文件:'.$e->getFile()."\n";
  72.         file_put_contents('error.log',$msg)
  73.     }

  74. ?>
复制代码

论坛徽章:
26
2015亚冠之胡齐斯坦钢铁
日期:2015-06-25 21:40:202015亚冠之柏斯波利斯
日期:2015-08-31 17:03:192015亚冠之柏斯波利斯
日期:2015-11-07 13:10:00程序设计版块每日发帖之星
日期:2015-11-10 06:20:00每日论坛发贴之星
日期:2015-11-10 06:20:00程序设计版块每日发帖之星
日期:2015-11-26 06:20:00程序设计版块每日发帖之星
日期:2015-12-02 06:20:00黄金圣斗士
日期:2015-12-07 17:57:4615-16赛季CBA联赛之天津
日期:2015-12-23 18:34:14程序设计版块每日发帖之星
日期:2016-01-02 06:20:00程序设计版块每日发帖之星
日期:2016-01-06 06:20:00每日论坛发贴之星
日期:2016-01-06 06:20:00
2 [报告]
发表于 2015-08-10 20:04 |只看该作者
LZ出错啦代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP