php try catch语句怎么用插图

本教程操作环境:windows7系统、PHP7.1版,DELL G3电脑

在 PHP 中想要捕获程序中的异常,需要使用 try catch 语句和 throw 关键字来实现。try catch 语句和流程控制语句类似,所以可以通过 try catch 语句来实现一种另类的条件选择结构,而 throw 关键字则可以抛出一个异常。try catch 语句的语法格式如下:

try{
    // 可能出现异常或错误的代码,比如文件操作、数据库操作等
}catch(Exception $e){    // $e 为一个异常类的对象
    // 输出错误信息
}

需要进行异常处理的代码都必须放入 try 代码块内,以便捕获可能存在的异常。每一个 try 至少要有一个与之对应的 catch。使用多个 catch 可以捕获不同的类所产生的异常。

当 try 代码块不再抛出异常或者找不到 catch 能匹配所抛出的异常时,PHP 代码就会在跳转到最后一个 catch 的后面继续执行。

在 PHP 代码中所产生的异常可以被 throw 语句抛出并被 catch 语句捕获。当然,PHP 允许在 catch 代码块内再次抛出(throw)异常。

当一个异常被抛出时,其后的代码不会再继续执行,而 PHP 就会尝试继续查找第一个能与之匹配的 catch。如果一个异常没有被捕获,而且又没用使用 set_exception_handler() 作相应的处理的话,将会产生一个严重的错误,并且输出 UncaughtException…(未捕获异常)的提示信息。

【示例】使用 try catch 和 throw 捕获程序中的异常。

<?php
    try{
        $err = '抛出异常信息,并跳出 try 语句块';
        if(is_dir('./test')){
            echo '这里是一些可能会发生异常的代码';
        }else{
            throw new Exception($err, 12345);   // 抛出异常
        }
        echo '上面抛出异常的话,这行代码将不会执行,转而执行 catch 中的代码。<br>';
    }catch(Exception $e){
        echo '捕获异常:'.$e->getMessage().'<br>错误代码:'.$e->getCode().'<br>';
    }
    echo '继续执行 try catch 语句之外的代码';
?>

运行结果如下:

捕获异常:抛出异常信息,并跳出 try 语句块
错误代码:12345
继续执行 try catch 语句之外的代码

示例代码中,在 try 语句块中试着判断当前目录下是否存在名为 test 的目录,如果不存在这个目录,那么就会执行第 7 行的代码,通过关键字 throw 抛出异常。这个异常是一个 Exception 类的对象,通过 new 关键字生成,并且用错误信息 $err 和错误代码 12345 初始化该对象,以便后面 catch 该异常时(代码第 11 行),可以获取这些信息。

一旦抛出异常,那么 try 语句块中剩下的代码就不再继续执行,程序流程转至相应的 catch 语句块执行,最终通过 Exception 对象调用其成员函数输出错误信息和代码。

推荐学习:《PHP视频教程

以上就是php try catch语句怎么用的详细内容,更多请关注亿码酷站其它相关文章!


<!–亿码酷站直播班–>php try catch语句怎么用
—–文章转载自PHP中文网如有侵权请联系ymkuzhan@126.com删除

下载声明:
  • 本站资源如无特殊说明默认解压密码为www.ymkuzhan.com建议使用WinRAR解压;
  • 本站资源来源于用户分享、互换、购买以及网络收集等渠道,本站不提供任何技术服务及有偿服务,资源仅提供给大家学习研究请勿作它用。
  • 赞助本站仅为维持服务器日常运行并非购买程序及源码费用因此不提供任何技术支持,如果你喜欢该程序,请购买正版!
  • 版权声明:
  • 下载本站资源学习研究的默认同意本站【版权声明】若本站提供的资源侵犯到你的权益,请提交版权证明文件至邮箱ymkuzhan#126.com(将#替换为@)站长将会在三个工作日内为您删除。
  • 免责声明:
  • 您好,本站所有资源(包括但不限于:源码、素材、工具、字体、图像、模板等)均为用户分享、互换、购买以及网络收集而来,并未取得原始权利人授权,因此禁止一切商用行为,仅可用于个人研究学习使用。请务必于下载后24小时内彻底删除,一切因下载人使用所引起的法律相关责任,包括但不限于:侵权,索赔,法律责任,刑事责任等相关责任,全部由下载人/使用人,全部承担。以上说明,一经发布视为您已全部阅读,理解、同意以上内容,如对以上内容持有异议,请勿下载,谢谢配合!支持正版,人人有责,如不慎对您的合法权益构成侵犯,请联系我们对相应内容进行删除,谢谢!