php中try catch捕获异常实例详解

 更新时间:2020年08月06日 15:56:36   作者:fwkjdaghappy1  
这篇文章主要介绍了php中try catch捕获异常实例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

PHP 5 添加了类似于其它语言的异常处理模块。在 PHP 代码中所产生的异常可被 throw语句抛出并被 catch 语句捕获。(注:一定要先抛才能获取)

需要进行异常处理的代码都必须放入 try 代码块内,以便捕获可能存在的异常。

每一个 try 至少要有一个与之对应的 catch。

使用多个 catch可以捕获不同的类所产生的异常。

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

当然,PHP允许在 catch 代码块内再次抛出(throw)异常。

当一个异常被抛出时,其后(译者注:指抛出异常时所在的代码块)的代码将不会继续执行,而 PHP 就会尝试查找第一个能与之匹配的 catch。

如果一个异常没有被捕获,而且又没用使用 set_exception_handler() 作相应的处理的话,那么 PHP 将会产生一个严重的错误,并且输出 Uncaught Exception ... (未捕获异常)的提示信息。

先来看一下PHP内置异常类的基本属性和方法。(不包括具体实现)

<?php
/**
* Exception.php
* 
* PHP5内置的异常类的属性与方法
* 以下这段代码只为说明内置异常处理类的结构,它并不是一段有实际意义的可用代码。
*/
 
class Exception{
	protected $message = 'Unknown exception'; // 异常信息
	protected $code = 0; // 用户自定义异常代码
	protected $file; // 发生异常的文件名
	protected $line; // 发生异常的代码行号
 
	function __construct($message = null, $code = 0);
	final function getMessage(); // 返回异常信息
	final function getCode(); // 返回异常代码(代号)
	final function getFile(); // 返回发生异常的文件名
	final function getLine(); // 返回发生异常的代码行号
	final function getTrace(); // backtrace() 数组
	final function getTraceAsString(); // 已格成化成字符串的 getTrace() 信息
 
	//可重载的方法
	function __toString(); // 可输出的字符串
}
?>

例子如下:

包含文件错误抛出异常

<?php
// 错误的演示
try {
require ('test_try_catch.php');
} catch (Exception $e) {
echo $e->getMessage();
}


// 正确的抛出异常
try {
if (file_exists('test_try_catch.php')) {
require ('test_try_catch.php');
} else {
throw new Exception('file is not exists');
}
} catch (Exception $e) {
echo $e->getMessage();
}

到此这篇关于php中try catch捕获异常实例详解的文章就介绍到这了,更多相关php中try catch捕获异常内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • php中return的用法实例分析

    php中return的用法实例分析

    这篇文章主要介绍了php中return的用法,实例分析了php中return的功能及常见的使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-02-02
  • PHP实现常见排序算法的示例代码

    PHP实现常见排序算法的示例代码

    这篇文章主要介绍了PHP实现常见排序算法(冒泡排序、选择排序、快速排序和插入排序)的示例代码,感兴趣的小伙伴可以跟随小编一起学习一下
    2022-06-06
  • PHP简单计算两个时间差的方法示例

    PHP简单计算两个时间差的方法示例

    这篇文章主要介绍了PHP简单计算两个时间差的方法,结合具体实例形式分析了php日期与时间的转换及数学运算相关操作技巧,需要的朋友可以参考下
    2017-06-06
  • Paypal实现循环扣款(订阅)功能

    Paypal实现循环扣款(订阅)功能

    本文主要介绍了Paypal实现循环扣款(订阅)的思路与方法;并对如何使用Paypal的支付接口做下总结,具有很好的参考价值。下面跟着小编一起来看下吧
    2017-03-03
  • 详解PHP原生DOM对象操作XML的方法

    详解PHP原生DOM对象操作XML的方法

    大家都知道对于操作XML类型文件,PHP内置有一套DOM对象可以进行处理。对XML的操作,从创建、添加到修改、删除都可以使用DOM对象中的函数来进行。下面这篇文章通过示例代码给大家介绍如何进行操作,有需要的朋友们可以参考借鉴,下面来一起看看吧。
    2016-10-10
  • 利用PHP+JS实现搜索自动提示(实例)

    利用PHP+JS实现搜索自动提示(实例)

    本篇文章对利用PHP+JS实现搜索自动提示的方法进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • PHP中的cookie不用刷新就生效的方法

    PHP中的cookie不用刷新就生效的方法

    PHP的COOKIE在设定之后,必须要刷新一下网页才能生效,至于是什么原因,有人说是为了安全考虑,至于你信不信,反正我信了
    2012-02-02
  • 深入PHP获取随机数字和字母的方法详解

    深入PHP获取随机数字和字母的方法详解

    本篇文章是对PHP获取随机数字和字母的方法进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • PHP实现清除wordpress里恶意代码

    PHP实现清除wordpress里恶意代码

    这篇文章主要介绍了PHP实现清除wordpress里恶意代码的方法以及相关代码和使用方法,有需要的小伙伴可以参考下。
    2015-10-10
  • 解析php二分法查找数组是否包含某一元素

    解析php二分法查找数组是否包含某一元素

    本篇文章是对在php中二分法查找数组是否包含某一元素进行了详细的分析介绍,需要的朋友参考下
    2013-05-05

最新评论