zoukankan      html  css  js  c++  java
  • 【笔记】php中的错误机制try和catch的使用

    <?php
    错误处理
    
    异常处理:意外 ,是在程序运行的时候意外发生的事情,使用异常改变脚本正常流程
        php5中的一个新的特性
        try{
            
            if()
                throw new Exception("");
        }catch(Exception $e){//$e=Exception创建的对象
        
        }
        //流程
    1.如果try中代码没有问题,则将try中的代码执行完后就到catch后执行,不执行里面的代码 2.如果try中代码有异常,则抛出一个异常对象,抛给了catch中的参数,try后就不继续执行,直接跳到catch中执行 注意:一般是提示 但是,为什么不去给他加上去???可以加上去 二、最好自己定义一个异常类Eg2(本文最下) 作用:写一个或者多个方法当发生异常的处理方式 1.自己定义异常类,必须是Exceoption(内置的)的子类//就是必须继承他 2.Exception类中的只有构造和toString()可以重新写,其他都是final 三、处理多个异常Eg3 四、自己定义功能类来处理异常Eg3 收货: 可以用错误处理来处理一些错误如下Eg1中的例子,果然还是catch里面还是可以再写嵌套的 ****Eg1://异常处理的常用处理方式 try{ echo "11<br>"; $file=@fopen("text.txt","r"); if(!$file){ throw new Exception("打开文件失败!"); } echo "222"; }catch(new $e){//$e=Exception创建的对象 //可以输出getMessage,就是刚刚上面定义的文字。 $e->getMessage()."<br>"; //例子 ,如果没有可以创建 touch("hello.txt"); $file=@fopen("hello.txt","r"); echo "333"; } echo "444"; ****Eg2://可以直接的调用这个方法了 class OpenFileException extends Exception{ function __construct($mess=null,$code=0){ parent::__construct($mess,$code); echo "wwwwww<br>"; }//如果父类方法中有构造方法必须再调用一下,,,省的有的东西执行不了~~ function open(){ touch("tmp.txt","w"); $file=fopen("tmp.txt","r"); return $file; } } ... ... throw new OpenFileException(); ... ... $e->open(); $e->getMessage(); ****Eg3://这个方法比较牛逼~ 可以调用多个异常 //不同的方法不同的异常 catch可以多用 //1.首先写 好多好多好多 的类...暂时写两个吧 class DemoException extends Exception{ function pro(){ echo "处理pro的异常"; } } class TestException extends Exception{ function pro(){ echo "处理pro的异常"; } } //2.然后用一个里面用throw new OpenFileException class MyClass{ function demo($num=0){ if (!num==1){ throw new DemoException("demo"); } } function test($num=0){ if (!num==1){ throw new TestException("test"); } } } try{ echo "111"; $my=new MyClass(); $my->demo();//带参数来测试 $my->test(); echo "222"; }catch(DemoException $e){ echo $e->getMessage()."<br>"; $e->pro(); }catch(TestException $e){ echo $e->getMessage()."<br>"; $e->pro(); }//一个一个的对应...但是顺序?
  • 相关阅读:
    突然连不上VSS等服务器的原因之一
    “复制到剪贴板”的解决方案
    设置SQLServer2008开启远程连接(转)
    对List(IList)集合作求和,最大(小)值操作
    .net实现简单语音朗读(TTS)功能
    17点成就你的好代码
    2011年上半年五大臭名昭著的数据库泄密事件
    Spring Mobile 1.1.0.M2 发布
    Rainbows! 4.4.3 发布,修复 EventMachine 问题
    情绪不是反应,而是决定
  • 原文地址:https://www.cnblogs.com/xiguayizu/p/3339379.html
Copyright © 2011-2022 走看看