返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >php7中异常与错误的处理方法
  • 751
分享到

php7中异常与错误的处理方法

2023-06-14 09:06:24 751人浏览 泡泡鱼
摘要

这篇文章将为大家详细讲解有关PHP7中异常与错误的处理方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。异常与错误的概述什么叫做异常?异常是指程序运行中不符合预期情况以及与正常流程不同的状况。比如你链接数

这篇文章将为大家详细讲解有关PHP7中异常与错误的处理方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

异常与错误的概述

什么叫做异常?

异常是指程序运行中不符合预期情况以及与正常流程不同的状况。

比如你链接数据库,在参数都写上去的条件下,发现链接不上去,这就属于不符合预期

可以被 try-catch 捕捉得到

什么叫做错误?

是属于php程序自身的问题,一般是由非法的语法,环境问题导致的,使得编译器无法通过检查,甚至无法运行的情况。
平时遇到的 warming、notice都是错误,只是级别不同而已。

例如:

  • TypeError(类型错误) 我规定的函数参数类型和传入的参数不一致

  • ArithmeticError (算数错误)

  • ParseError (解析错误)在调入的文件中,include “demo.php”,或者 eval();中有语法错误造成解析失败

  • AssertionError(断言错误)当assert生效时产生该错误

  • pisionByZeroError (分母为零) 运算过程中例如除法,分母为0

除了这几种情况,其余全部为异常

异常处理

在以前的 php5.X 中 并且不能被 try-catch 捕捉得到,到了 php 7.x 中,定义了一个 Throwable 接口 并使得大部分的 Error 和
Exception 实现了该接口,我们得以在 try-catch 中抛出该错误

所以说以后想要捕获异常,而你又不知道此异常是 Error 还是 Exception 的话,可以向这样抛出

try{    ……}catch(Throwable $e){    ……}

错误的级别

在 php 中的错误也是有级别的

Parse error >Fatal Error > Waning > Notice >Deprecated

Deprecated 最低级别的错误(不推荐,不建议)使用一些过期函数的时候会出现,程序继续执行Notice 通知级别的错误使用一些未定义变量、常量或者数组key没有加引号的时候会出现,程序继续执行        E_NOTICE      // 运行时通知。表示脚本遇到可能会表现为错误的情况.        E_USER_NOTICE // 用户产生的通知信息。Waning 警告级别的错误程序出问题了,需要修改代码!!!程序继续执行        E_WARNING         // 运行时警告 (非致命错误)。        E_CORE_WARNING    // PHP初始化启动过程中发生的警告 (非致命错误) 。        E_COMPILE_WARNING // 编译警告        E_USER_WARNING    // 用户产生的警告信息Fatal Error 错误级别的错误程序直接报错,需要修改代码!!!中断程序执行,可使用reGISter_shutdown_function()函数在程序终止前触发一个函数        E_ERROR         // 致命的运行错误,错误无法恢复,暂停执行脚本        E_CORE_ERROR    // PHP启动时初始化过程中的致命错误        E_COMPILE_ERROR // 编译时致命性错,就像由Zend脚本引擎生成了一个E_ERROR        E_USER_ERROR    // 自定义错误消息。像用PHP函数trigger_error(错误类型设置为:E_USER_ERROR)Parse error 语法解析错误语法检查阶段报错,需要修改代码!!!中断程序执行,除了修改ini文件,将错误信息写到日志中,什么也做不了        E_PARSE  //编译时的语法解析错误

自定义错误处理程序

有的时候,php 中自带的错误处理程序,并不能完全满足我们得需要,大部分时候,我们都需要手动重写异常处理。

php 给我们提供了三个函数来帮助我们来处理,分别是

set_error_handler()
  • 函数来托管错误处理程序,可自行定制错误的处理流程。

  • 如果此函数之前的代码发生错误,那么不会调用我们自定义的处理函数,因为还未注册

  • 设置此函数后 error_reporting() 将会失效

  • 以下级别的错误不能由用户定义的函数来处理: E_ERROR、 E_PARSE、 E_CORE_ERROR、 E_CORE_WARNING、 E_COMPILE_ERROR、 E_COMPILE_WARNING 该函数只能捕捉我们的 部分 Warning 和 Note 级别的错误

set_exception_handler()
  • 用于没有被捕获的异常处理

register_shutdown_function()
  • 作用:注册一个会在php中止时执行的函数

  • 捕获PHP的错误:Fatal Error、Parse Error等,这个方法是PHP脚本执行结束前最后一个调用的函数,比如脚本错误、die()、exit、异常、正常结束都会调用,

  • 如果拿来用错误处理的时候,需要配合error_get_last() 它能获取最后发生的错误。

举例register_shutdown_function('shutdown');function shutdown(){    if ($error = error_get_last()) {        var_dump($error);    }}$name   //没写 ; 号

执行结果
Parse error: syntax error, unexpected ';' in /app/swoole/errorDemo.php on line 34
Emmmmm 这不扯淡吗? 分明分明没有执行呢?

其实原因使因为,程序执行前,我们 php 会先检查我们程序的语法问题,如果没有问题,我们才能执行我们的程序。

我们上面的代码没用通过我们的语法检查,所以直接报错。

那么问题来了? 我们在框架中的时候,为什么是框架都是框架给我们报错呢?

框架的错误处理

在框架中,其代码是通过一个入口文件来加载的。而我们php检测语法错误的时候,只检查我们的 index.php 有它 require 是不会受到检测的。当我们代码出错时,那是在 run-time 中检测的错误,所以我们框架中的可以相应错误

关于“php7中异常与错误的处理方法”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

--结束END--

本文标题: php7中异常与错误的处理方法

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

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

猜你喜欢
  • php7中异常与错误的处理方法
    这篇文章将为大家详细讲解有关php7中异常与错误的处理方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。异常与错误的概述什么叫做异常?异常是指程序运行中不符合预期情况以及与正常流程不同的状况。比如你链接数...
    99+
    2023-06-14
  • php常见的错误与异常处理方法
    本篇内容介绍了“php常见的错误与异常处理方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!php与其他计算机编程语言在遇到错误就抛出异常不...
    99+
    2023-06-02
  • 详解JS中异常与错误处理的正确方法
    目录简介1 面向错误编程1.1 墨菲定律1.2 先判否2. js 内置的错误处理2.1 Error 类2.2 throw2.3 try catch2.4 Promise.catch3...
    99+
    2023-05-16
    JS异常处理 JS错误处理 JS异常
  • Python错误与异常处理
    1. 从键盘输入一个整数,求 100 除以它的商,并显示输出。要求对从键盘输入的数值进行异常处理。 try:     n=int(input("请输入一个整数:"))     x=1...
    99+
    2024-04-02
  • Golang错误处理方式异常与error
    目录一、异常二、错误Go 提供了两种处理错误 方式, 一 种是借助 panic和 recover 的抛出捕获机制, 另一种使用error 错误类型 一、异常 1、go没有try/ca...
    99+
    2023-01-14
    Go异常与error Go异常 Go error
  • Java中的异常与错误如何处理
    这篇文章主要介绍“Java中的异常与错误如何处理”,在日常操作中,相信很多人在Java中的异常与错误如何处理问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java中的异常与错误如何处理”的疑惑有所帮助!接下来...
    99+
    2023-06-17
  • MySQL的错误处理与异常捕获方法是什么
    MySQL的错误处理主要通过以下几种方法来实现: 使用错误代码和消息:当MySQL执行出错时,会返回错误代码和错误消息,开发者可...
    99+
    2024-04-30
    MySQL
  • PHP7中新增的错误处理函数:如何更好地管理错误和异常?
    PHP7中新增了一些强大的错误处理函数,使得开发者在管理错误和异常方面更加灵活和高效。本文将介绍这些新增的错误处理函数,并提供一些具体的代码示例来演示如何更好地管理错误和异常。一、错误处理函数set_error_handler(callba...
    99+
    2023-10-24
    PHP 错误处理 异常管理
  • plsql的错误信息与异常处理
    7 错误消息与异常处理7.1 异常的介绍(1) 处理异常分为三个步骤:  A 声明异常  B 引发异常  C 处理异常(2) 异常的特征  A 错误类型: ORA-x...
    99+
    2024-04-02
  • Node.js 事件循环中的错误处理与异常处理
    ...
    99+
    2024-04-02
  • 再谈PHP错误与异常处理
    目录一、异常与错误的概述PHP中什么是异常PHP中什么是错误上面的说法是有前提条件的PHP异常处理很鸡肋?二、ERROR的级别三、PHP异常处理中的黑科技1:set_error_ha...
    99+
    2024-04-02
  • golang函数中的错误处理与异常处理的比较
    go 语言提供两种错误处理机制:1. 错误处理:使用 err 参数返回错误,调用方需显式处理;2. 异常处理:使用 panic() 和 recover() 函数,引发并捕获异常。实战场景...
    99+
    2024-04-25
    错误处理 异常处理 golang
  • 深入探讨JAVA中的异常与错误处理
    异常与错误:  异常:  在Java中程序的错误主要是语法错误和语义错误,一个程序在编译和运行时出现的错误我们统一称之为异常,它是VM(虚拟机)通知你的一种方式,通过这种方式,VM让...
    99+
    2022-11-15
    JAVA 异常 错误处理
  • Java JSP 异常处理:处理错误和异常
    异常处理在 Java 和 JSP 编程中至关重要,因为它允许应用程序优雅地处理错误和异常情况,从而提高健壮性和用户体验。 JSP 中的异常处理 JSP 提供了三种主要机制来处理异常: page 指令:该指令指定处理某个页面上所有未处理异...
    99+
    2024-03-15
    JSP
  • 异常处理与传统错误处理在 PHP 中的比较?
    异常处理是一种结构化的错误处理机制,将错误打包成对象,提供了更健壮、结构化和可追踪的方式来处理错误,弥补了传统错误处理的局限性。 异常处理与传统错误处理在 PHP 中的比较 传统错误处...
    99+
    2024-05-09
    异常处理 传统错误处理
  • Go中的错误和异常处理最佳实践方法
    目录错误认识错误自定义错误实现原理异常认识异常处理异常异常处理原则异常处理实践错误 认识错误 在Go中,错误是一种表示程序错误状态。包含了在程序在运行时、编译时的状态信息。一般我们在...
    99+
    2024-04-02
  • ORACLE 异常错误处理
    即使是写得最好的PL/SQL程序也会遇到错误或未预料到的事件。一个优秀的程序都应该能够正确处理各种出错情况,并尽可能从错误中恢复。任何ORACLE错误(报告为ORA-xxxxx形式的Oracle错误号)、P...
    99+
    2024-04-02
  • JavaScript 错误处理中的错误边界:隔离和处理异常
    ...
    99+
    2024-04-02
  • PHP 异常处理:对错误和异常的全面处理
    异常处理是 php 中处理错误和异常的重要机制,提高了应用程序的健壮性和稳定性。错误由解释器抛出,表示无法恢复的严重问题。异常由代码抛出,表示可恢复的运行时问题。php 提供了 erro...
    99+
    2024-05-11
    php 异常处理
  • java中异常与错误
    在 Java 中,所有的异常都有一个共同的祖先 Throwable(可抛出)。Throwable 指定代码中可用异常传播机制通过 Java 应用程序传输的任何问题的共性。Throwable: 有两个重要的子类:Exception(异常)和 ...
    99+
    2014-07-04
    java入门 java
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作