加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

基于PHP7错误处理与异常处理方法(详解)

发布时间:2021-04-03 11:46:28 所属栏目:编程 来源:网络整理
导读:PHP7错误处理赏罚 PHP 7 改变了大大都错误的陈诉方法。差异于传统(PHP 5)的错误陈诉机制,此刻大大都错误被作为 Error 非常抛出。 这种 Error 非常可以像 Exception 非常一样被第一个匹配的 try / catch 块所捕捉。假如没有匹配的 catch 块,则挪用非常处理赏罚函

PHP7错误处理赏罚

PHP 7 改变了大大都错误的陈诉方法。差异于传统(PHP 5)的错误陈诉机制,此刻大大都错误被作为 Error 非常抛出。

这种 Error 非常可以像 Exception 非常一样被第一个匹配的 try / catch 块所捕捉。假如没有匹配的 catch 块,则挪用非常处理赏罚函数(事先通过 set_exception_handler() 注册)举办处理赏罚。 假如尚未注册非常处理赏罚函数,则凭证传统方法处理赏罚:被陈诉为一个致命错误(Fatal Error)。

Error 类并非担任自 Exception 类,以是不能用 catch (Exception e)...来捕捉Error。你可以用catch(Errore) { … },可能通过注册非常处理赏罚函数( set_exception_handler())来捕捉 Error。

Error 条理布局

扩展(extend) PHP内置的非常处理赏罚类

用户可以用自界说的非常处理赏罚类来扩展PHP内置的非常处理赏罚类。以下的代码声名白在内置的非常处理赏罚类中,哪些属性和要领在子类中是可会见和担任的。

Example #1 内置的非常处理赏罚类

假如行使自界说的类来扩展内置非常处理赏罚类,而且要从头界说结构函数的话,提议同时挪用 parent::__construct() 来搜查全部的变量是否已被赋值。当工具要输出字符串的时辰,可以重载 __toString() 并自界说输出的样式。 Note: Exception 工具不能被复制。实行对 Exception 工具复制 会导致一个 E_ERROR 级此外错误。
code}]: {$this->message}n"; } public function customFunction() { echo "A custom function for this type of exceptionn"; } }

/**

  • 建设一个用于测试非常处理赏罚机制的类
    */
    class TestException
    {
    public $var;
    const THROW_NONE = 0;
    const THROW_CUSTOM = 1;
    const THROW_DEFAULT = 2;
    function __construct($avalue = self::THROW_NONE) {
    switch ($avalue) {
    case self::THROW_CUSTOM:
    // 抛出自界说非常
    throw new MyException('1 is an invalid parameter',5);
    break;
    case self::THROW_DEFAULT:
    // 抛出默认的非常
    throw new Exception('2 is not allowed as a parameter',6);
    break;
    default:
    // 没有非常的环境下,建设一个工具
    $this->var = $avalue;
    break;
    }
    }
    }

    以上这篇基于PHP7错误处理赏罚与非常处理赏罚要领(详解)就是小编分享给各人的所有内容了,但愿能给各人一个参考,也但愿各人多多支持编程之家。

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读