PHP异常处理办法

人都会出错,更何况程序,那么当PHP异常是该怎么处理?一起来看看吧!更多消息请关注应届毕业生网!

扩展 PHP 内置的异常处理类

PHP 5 添加了类似于其它语言的异常处理模块。在 PHP 代码中所产生的异常可被 throw 语句抛出并被 catch 语句捕获。需要进行异常处理的代码都必须放入 try 代码块内,以便捕获可能存在的异常。每一个 try 至少要有一个与之对应的 catch。使用多个 catch 可以捕获不同的类所产生的异常。当 try 代码块不再抛出异常或者找不到 catch 能匹配所抛出的异常时,PHP 代码就会在跳转到最后一个 catch 的后面继续执行。当然,PHP 允许在 catch 代码块内再次抛出(throw)异常。

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

Note:

PHP 内部函数主要使用错误报告, 只有现代面向对象的扩展才使用异常。但错误可以很容易的通过ErrorException转换为异常。

Tip

PHP标准库 (SPL) 提供了许多内建的异常类。

Example #1 抛出一个异常

function inverse($x) {

if (!$x) {

throw new Exception('Division by zero.');}

else return 1/$x;

}

try {

echo inverse(5) . " ";

echo inverse(0) . " ";

} catch (Exception $e) {

echo 'Caught exception: ',  $e->getMessage(), " ";}

// Continue execution

echo 'Hello World';

?>

以上例程会输出:

0.2

Caught exception: Division by zero.

Hello World

Example #2 嵌套的异常

class MyException extends Exception { }

class Test {

public function testing() {

try {

try {

throw new MyException('foo!');

} catch (MyException $e) {

/* rethrow it */

throw $e;

}

} catch (Exception $e) {

var_dump($e->getMessage());

}

}

}

$foo = new Test;

$foo->testing();

?>

以上例程会输出:

string(4) "foo!"

php异常处理方式,PHP异常处理办法相关推荐

  1. php的异常处理方式,php异常处理基本方法

    当一个php脚本运行时,为了防止脚本运行崩溃,亦或是当php作为webserver,为了防止php程序出错,抛出httpcode500错误,我们常常需要对php程序做异常处理. 今天介绍的是最基本的异 ...

  2. java中的异常处理代码,java_深入剖析Java中的各种异常处理方式,1. 调试追踪代码:public s - phpStudy...

    深入剖析Java中的各种异常处理方式 1. 调试追踪代码: public static void enterTryMethod() { System.out.println("enter a ...

  3. IO流(IO异常处理方式)

    IO流(IO异常处理方式) 参考文章: (1)IO流(IO异常处理方式) (2)https://www.cnblogs.com/yangyongqian/p/5150838.html 备忘一下.

  4. Asp.NetCore依赖注入和管道方式的异常处理及日志记录

    前言     在业务系统,异常处理是所有开发人员必须面对的问题,在一定程度上,异常处理的能力反映出开发者对业务的驾驭水平:本章将着重介绍如何在 WebApi 程序中对异常进行捕获,然后利用 Nlog ...

  5. java异常处理方式推荐做法_谈谈Java异常处理这件事儿

    此文已由作者谢蕾授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 前言 我们对于"异常处理"这个词并不陌生,众多框架和库在异常处理方面都提供了便利,但是对于 ...

  6. Spring Boot项目优雅的全局异常处理方式(全网最新)

    全局异常处理 前言 一.全局异常处理方式一 1.1 自定义全局异常类 1.2 手动抛出异常 1.3 测试打印 二.全局异常处理方式二 2.1 定义基础接口类 2.2 定义枚举类 2.3 自定义异常类 ...

  7. springboot异常处理方式

    springboot异常处理方式 参考文章: (1)springboot异常处理方式 (2)https://www.cnblogs.com/whalesea/p/11384397.html 备忘一下.

  8. quartz2.3.0(六)job任务异常处理方式

    quartz2.3.0(六)job任务异常处理方式 参考文章: (1)quartz2.3.0(六)job任务异常处理方式 (2)https://www.cnblogs.com/zhuwenjoyce/ ...

  9. python异常处理的作用_Python 中的异常处理方式

    封面图片来源:沙沙野 异常处理什么是异常处理?Python 解释器检测到错误就会触发异常,或者程序员自己触发异常 程序中编写特定的代码,专门用来捕捉这个异常(这段代码与程序逻辑无关,与异常处理有关) ...

最新文章

  1. Sql Server:创建用户并指定该用户只能看指定的视图
  2. 为什么说特斯拉研发自动驾驶AI芯片应该引起注意?
  3. 浪潮各机型前面板指示灯含义
  4. Prepare for Android
  5. Linux软件安装——安装软件的命令
  6. 【LightOJ - 1104】Birthday Paradox(概率,思维)
  7. MacOS 安装 Telnet
  8. 【李宏毅2020 ML/DL】P11 Logistic Regression | 由逻辑回归中的特征转换巧妙引出“神经网络”的概念
  9. setState的参数接收函数
  10. 计算机二级机试题型,计算机二级机试题库
  11. 窗口电压比较器电路设计
  12. ppt菜鸟学飞第一天——基础知识及字体知识
  13. Python —— 压缩文件夹
  14. scala的linearization
  15. 面试被问到CAS原理,触及知识盲区,脸都绿了!
  16. 视频截取并提取成音频
  17. linux 符号所在库,linux – 即使nm表示该符号存在于共享库中时,也未引用符号
  18. 机电和计算机专业怎么选,计算机专业怎么选城口_竟成学校
  19. 《“桥板灯”的来历》——游城“明经胡氏”
  20. 一图搞懂formula常用符号

热门文章

  1. 网络数据包信息收集工具ferret-sidejack
  2. Xamarin XAML语言教程Progress属性设置进度条进度
  3. 声网sdk android接入,Android 集成声网Agora 音视频实时通话(三)
  4. 研究人员探索gaze fixation对基于运动想象的脑机接口性能的影响
  5. MNE-Python专辑 (2) MNE中数据结构Raw及其用法简介(更新)
  6. 机器学习(5)--化无限为有限
  7. 学习java的一些笔记(3)
  8. 南非的5DT数据手套使用说明
  9. java 查找一行_Java培训之工具类通用的查询一行多列,非实体
  10. java 让进度条动起来_自定义进度条动起来