浅谈PHP中try{}catch{}的使用方法

PHP中try{}catch{}的作用是用来处理异常。可以为我们收集并显示出错误信息。希望通过这篇文章的介绍,大家能掌握这一语句的应用。

在PHP语言中有许多语法需要我们去不断的熟悉,然后才能灵活的运用,编写我们需要的代码程序。在这篇文章中我们将为大家介绍PHP中try{}catch{}的用法。

<?php
	try {
		//...
	} catch(Exception $e) {
		//...
	}
?>

PHP中try{}catch{}是异常处理.

将要执行的代码放入TRY块中,如果这些代码执行过程中某一条语句发生异常,则程序直接跳转到CATCH块中,由$e收集错误信息和显示.

PHP中try{}catch{}语句

为了进一步处理异常,我们需要使用PHP中try{}catch{}----包括Try语句和至少一个的catch语句。任何调用 可能抛出异常的方法的代码都应该使用try语句。Catch语句用来处理可能抛出的异常。

以下显示了我们处理getCommandObject()抛出的异常的方法:

<?php
	try {
		$mgr = new CommandManager();
		$cmd = $mgr->getCommandObject("realcommand");
		$cmd->execute();
	} catch (Exception $e) {
		print $e->getMessage();
		exit();
	}
?>

可以看到,通过结合使用throw关键字和PHP中try{}catch{},我们可以避免错误标记“污染”类方法返回的值。因为“异常”本身就是一种与其它任何对象不同的PHP内建的类型,不会产生混淆。

如果抛出了一个异常,try语句中的脚本将会停止执行,然后马上转向执行catch语句中的脚本。

如果异常抛出了却没有被捕捉到,就会产生一个fatal error。

以上这篇浅谈PHP中try{}catch{}的使用方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • PHP Try-catch 语句使用技巧

    PHP Try-catch 语句 为了进一步处理异常,我们需要使用try-catch语句----包括Try语句和至少一个的catch语句.任何调用 可能抛出异常的方法的代码都应该使用try语句.Catch语句用来处理可能抛出的异常.以下显示了我们处理getCommandObject()抛出的异常的方法: <?php try { $mgr = new CommandManager(); $cmd = $mgr->getCommandObject("realcommand");

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

    本文实例讲述了php中try catch捕获异常.分享给大家供大家参考.具体方法分析如下: php中try catch可以帮助我们捕获程序代码的异常了,这样我们可以很好的处理一些不必要的错误了,感兴趣的朋友可以一起来看看. PHP中try{}catch{}语句概述 PHP5添加了类似于其它语言的异常处理模块.在 PHP 代码中所产生的异常可被 throw语句抛出并被 catch 语句捕获.(注:一定要先抛才能获取) 需要进行异常处理的代码都必须放入 try 代码块内,以便捕获可能存在的异常. 每

  • 浅谈PHP中try{}catch{}的使用方法

    PHP中try{}catch{}的作用是用来处理异常.可以为我们收集并显示出错误信息.希望通过这篇文章的介绍,大家能掌握这一语句的应用. 在PHP语言中有许多语法需要我们去不断的熟悉,然后才能灵活的运用,编写我们需要的代码程序.在这篇文章中我们将为大家介绍PHP中try{}catch{}的用法. <?php try { //... } catch(Exception $e) { //... } ?> PHP中try{}catch{}是异常处理. 将要执行的代码放入TRY块中,如果这些代码执行过

  • 浅谈MySQL中group_concat()函数的排序方法

    group_concat()函数的参数是可以直接使用order by排序的.666.. 下面通过例子来说明,首先看下面的t1表. 比如,我们要查看每个人的多个分数,将该人对应的多个分数显示在一起,分数要从高到底排序. 可以这样写: SELECT username,GROUP_CONCAT(score ORDER BY score DESC) AS myScore FROM t1 GROUP BY username; 效果如下: 以上这篇浅谈MySQL中group_concat()函数的排序方法就

  • 浅谈js中StringBuffer类的实现方法及使用

    如下所示: <strong>JAVA中有一个StringBuffer类,js中却没有下面来自己实现一个简单的js的StringBuffer类.</strong> //创建一个StringBuffer类 ,此类有两个方法:一个是append方法一个是toString方法 function StringBuffer() { this.__strings__ = []; }; StringBuffer.prototype.append = function(str) { this.__s

  • 浅谈JavaScript 中有关时间对象的方法

    ECMAScript中的Date类型是在早期 Java 中的 Java.unile.Date 类基础上构建的.为此 Date 类型使用自 UTC (Coordinated Universal Time, 国际协调时间)1970年1月1日午夜开始经过的毫秒数来保存日期. 在这种数据存储格式下, Date 类型保存的日期能够精确到1970年1月1日之前或之后的285616年 •Date.parse(string) 接受一个表示日期的字符串参数,然后尝试根据这个字符串返回相应日期的毫秒数,不能转换则返

  • 浅谈python中真正关闭socket的方法

    close方法可以释放一个连接的资源,但是不是立即释放,如果想立即释放,那么在close之前使用shutdown方法 shut_rd() -------关闭接受消息通道 shut_wr()--------关闭发送消息通道 shut_rdwr()-------连个通道都关闭 使用:在close()之前加上shutdown(num)即可  [shut_rd(), shut_wr(), shut_rdwr()分别代表num 为0  1  2 ] (但是测试过close()关闭,发现如果关闭后,那么ac

  • 浅谈dataframe中更改列属性的方法

    在读取文件时将整数变量读成了字符串, 或者需要转换列属性时,通过方法astype Python中 举例: dataframe.numbers=dataframe.numbers.astype(float) province.id=province.id.astype(str) R中 举例: data<-read.csv('data.csv',col.names = c('id','sex','numbers'),stringsAsFactors=FALSE),stringsAsFactors=F

  • 浅谈angularJS2中的界面跳转方法

    链接参数数组保存路由导航时所需的成分: 指向目标组件的那个路由的路径(path) 必备路由参数和可选路由参数,它们将进入该路由的URL 我们可以把RouterLink指令绑定到一个数组,就像这样: <a [routerLink]="['/heroes']">Heroes</a> 在指定路由参数时,我们写过一个双元素的数组,就像这样: this.router.navigate(['/hero', hero.id]); 我们可以在对象中提供可选的路由参数,就像这样:

  • 浅谈Vue中插槽slot的使用方法

    如何定义和使用: 在组件的template中使用slot标签定义,slot标签中间可以定义默认显示值,如果slot标签没有声明name属性值,在使用插槽时将默认从第一个插槽依次往下放置,为了方便使用,一般都会都插槽slot指定一个name属性值,当要使用该插槽时,只需要在要使用的标签内添加slot='插槽名字',就可以将指定的标签放到指定的插槽内,插槽内可以是任意内容. 举例: <!DOCTYPE html> <html lang="en"> <head&

  • 浅谈controller中调用多个service方法的问题

    目录 controller调用多个service方法 controller调用service中方法的一些事物问题 controller调用多个service方法 一般service方法是有事务的,把所有操作封装在一个service方法中是比较安全的. 如果在controller中调用多个service方法,只有查询的情况下是可以这样的. controller调用service中方法的一些事物问题 关于在开发过程中的事务传播的一个问题: controller 调用service中a方法,a方法没有

  • 浅谈iOS中三种生成随机数方法

    ios 有如下三种随机数方法: //第一种 srand((unsigned)time(0)); //不加这句每次产生的随机数不变 int i = rand() % 5; //第二种 srandom(time(0)); int i = random() % 5; //第三种 int i = arc4random() % 5 ; 注: ① rand()和random()实际并不是一个真正的伪随机数发生器,在使用之前需要先初始化随机种子,否则每次生成的随机数一样. ② arc4random() 是一个

随机推荐