返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >解析PHP中Exception异常机制
  • 902
分享到

解析PHP中Exception异常机制

2024-04-02 19:04:59 902人浏览 安东尼
摘要

异常的基本使用 当异常被抛出时,其后的代码不会继续执行,PHP 会尝试查找匹配的 "catch" 代码块。 如果异常没有被捕获,而且又没用使用 set_exception_handl

异常的基本使用

当异常被抛出时,其后的代码不会继续执行,PHP 会尝试查找匹配的 "catch" 代码块。
如果异常没有被捕获,而且又没用使用 set_exception_handler() 作相应的处理的话,那么将发生一个严重的错误(致命错误),并且输出 "Uncaught Exception" (未捕获异常)的错误消息。
让我们尝试抛出一个异常,同时不去捕获它:


<?php
//create function with an exception
function checkNum($number)
 {
 if($number>1)
  {
  throw new Exception("Value must be 1 or below");
  }
 return true;
 }
 
//trigger exception
checkNum(2);
?>

上面的代码会获得类似这样的一个错误:


PHP Fatal error:  Uncaught exception 'Exception' with message 'Value must be 1 or below' in /home/wangkongming/babytree/test/php/php_ob/3.php:7
Stack trace:
#0 /home/wangkongming/babytree/test/php/php_ob/3.php(12): checkNum(2)
#1 {main}
  thrown in /home/wangkongming/babytree/test/php/php_ob/3.php on line 7

Try, throw 和 catch

要避免上面例子出现的错误,我们需要创建适当的代码来处理异常。
正确的处理程序应当包括:
Try - 使用异常的函数应该位于 "try" 代码块内。如果没有触发异常,则代码将照常继续执行。但是如果异常被触发,会抛出一个异常。
Throw - 这里规定如何触发异常。每一个 "throw" 必须对应至少一个 "catch"
Catch - "catch" 代码块会捕获异常,并创建一个包含异常信息的对象
让我们触发一个异常:


<?php
//create function with an exception
function checkNum($number)
 {   
 if($number>1)
  {  
      throw new Exception("Value must be 1 or below");
  }  
 return true;
 }   
     
//trigger exception                                                                                                       
try{
    checkNum(2);
    echo "If you see this ,the number is 1 or below";
}catch(Exception $e) {
    echo 'Message: '.$e -> getMessage();
}
?> 

运行上面的代码:

Message: Value must be 1 or below

例子解释:

上面的代码抛出了一个异常,并捕获了它:
创建 checkNum() 函数。它检测数字是否大于 1。如果是,则抛出一个异常。
在 "try" 代码块中调用 checkNum() 函数。
checkNum() 函数中的异常被抛出
"catch" 代码块接收到该异常,并创建一个包含异常信息的对象 ($e)。
通过从这个 exception 对象调用 $e->getMessage(),输出来自该异常的错误消息
不过,为了遵循“每个 throw 必须对应一个 catch”的原则,可以设置一个顶层的异常处理器来处理漏掉的错误。

到此这篇关于解析PHP中Exception异常机制的文章就介绍到这了,更多相关PHP中Exception异常内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 解析PHP中Exception异常机制

本文链接: https://lsjlt.com/news/129780.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 解析PHP中Exception异常机制
    异常的基本使用 当异常被抛出时,其后的代码不会继续执行,PHP 会尝试查找匹配的 "catch" 代码块。 如果异常没有被捕获,而且又没用使用 set_exception_handl...
    99+
    2024-04-02
  • PHP中Exception异常机制的示例分析
    这篇文章将为大家详细讲解有关PHP中Exception异常机制的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。异常的基本使用当异常被抛出时,其后的代码不会继续执行,PHP 会尝试查找匹配的 &qu...
    99+
    2023-06-20
  • 详解Java的Exception异常机制
    目录一、前言二、关于RuntimeException三、异常的避免四、异常的捕获五、异常的抛出(异常的转移)六、自定义异常一、前言 在Java中,我们在执行代码的过程中难免会遇到错误...
    99+
    2024-04-02
  • Java中Exception异常机制的原理
    本篇文章给大家分享的是有关Java中Exception异常机制的原理,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Error与Exception的区别与相同点:Error是严重...
    99+
    2023-06-15
  • Java 异常机制Exception和自定义异常
    目录异常机制异常体系结构异常的捕获与抛出自定义异常异常机制 异常:就是不符合实际需求,在实际中可能不存在也可能不满足实际,所以出现的问题称之为异常。 异常的三种类型: 检查性异常:用...
    99+
    2024-04-02
  • Java Exception异常全方面分析
    目录一、什么是异常?Java的异常体系如何排查异常二、 处理异常try…catch基本语法这个时候就要处理异常如果我们用Exception来捕获异常呢finally在方...
    99+
    2024-04-02
  • Java异常Exception详细讲解
    目录1、异常中最大的父类Throwable2、try-catch-finally三条语句注意的问题3、final-finally-finalize的各作用4、throws关键字5、t...
    99+
    2024-04-02
  • Python中异常机制的示例分析
    小编给大家分享一下Python中异常机制的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、对异常的理解1、什么是异常  异常即“与正常情况不同”,何为正...
    99+
    2023-06-08
  • 浅析php的错误和异常处理机制
    PHP作为一种广泛应用于Web开发的语言,在开发过程中难免会出现各种各样的错误和异常。为了提高代码的稳定性和可维护性,开发人员需要对PHP的错误和异常处理机制有足够的了解和掌握。本文将详细介绍PHP的错误和异常处理机制,并提供一些最佳实践和...
    99+
    2023-05-14
    错误处理 php
  • PHP中的异常及其处理机制
    目录什么是异常? 总结 上回文章中我们讲到了错误是编译和语法运行时会出现的,它们与逻辑无关,是程序员在码代码时不应该出现的,也就是说,这些错误应该是尽量避免带到线上环境的,他们不能通...
    99+
    2024-04-02
  • 怎样解析Java的异常处理机制
    这期内容当中小编将会给大家带来有关怎样解析Java的异常处理机制,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。你觉得自己是一个Java专家吗是否肯定自己已经全面掌握了Java的异常处理机制在下面这段代码中...
    99+
    2023-06-17
  • Golang异常处理机制浅析
    go 语言异常处理机制包括 panic 和 error 两种类型的异常。recover 函数用于捕获 panic 异常,而 error 类型表示可恢复的错误,通过 if err != n...
    99+
    2024-04-15
    golang 异常处理
  • Golang中异常处理机制详解
    前言 通常我们需要编写好的错误处理方式,在了避免某些程序员滥用异常,于是Go这里直接把异常这一块给砍掉了,最终还是通过返回值来判断程序的异常情况,毕竟Go可是支持多返回值的语言,比如...
    99+
    2024-04-02
  • PHP中的异常处理机制是什么?
    PHP是一种开源脚本语言,广泛应用于Web开发中。它有一个强大的异常处理机制,有助于开发人员更好地捕获并处理程序中的错误和异常。一、什么是异常?在编写程序时,会发生各种错误,比如无法找到文件、变量类型不匹配、数组越界等等。这些错误也称为异常...
    99+
    2023-05-14
    机制 PHP 异常处理
  • 关于Python中异常(Exception)的汇总
    前言 Exception类是常用的异常类,该类包括StandardError,StopIteration, GeneratorExit, Warning等异常类。python中的异常使用继承结构创建,可以在...
    99+
    2022-06-04
    异常 Python Exception
  • JAVA中的深情哥-Exception(异常)-上
    文章目录 目录 文章目录 前言 一,Exception的起源  二,异常类  三,自定义异常 总结 前言 大家好,我是最爱吃兽奶,今天给大家介绍一下java中的深情哥 - Exception 秋风依依秋水寒,一点离愁两黯然;今生默默唯轻舞...
    99+
    2023-09-07
    开发语言 java
  • 详解SpringMVC中的异常处理机制
    目录开头1.ExceptionHandlerExceptionResolver2. demo开头 试想一下我们一般怎么统一处理异常呢,答:切面。但抛开切面不讲,如果对每一个contr...
    99+
    2024-04-02
  • C++11中异常处理机制详解
    目录一、异常的引入二、C++异常的关键字三、异常的抛出与处理规则四、异常缺陷的处理五、自定义异常体系六、异常规范七、异常安全八、异常的优缺点1.优点2.缺点一、异常的引入 传统的C语...
    99+
    2024-04-02
  • Golang中异常处理机制的示例分析
    小编给大家分享一下Golang中异常处理机制的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!前言通常我们需要编写好的错误处理方式,在了避免某些程序员滥用异...
    99+
    2023-06-15
  • Java中异常处理机制的示例分析
    这篇文章给大家分享的是有关Java中异常处理机制的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。  你觉得自己是一个Java专家吗?是否肯定自己已经全面掌握了Java的异常处理机制?在下面这段代码中,你能...
    99+
    2023-06-03
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作