zoukankan      html  css  js  c++  java
  • PHP7 错误处理

    最近学习了下PHP7新特性教程,记录了一些学习笔记。

    PHP 7 改变了大多数错误的报告方式。不同于 PHP 5 的传统错误报告机制,现在大多数错误被作为 Error 异常抛出。

    这种 Error 异常可以像普通异常一样被 try / catch 块所捕获。如果没有匹配的 try / catch 块, 则调用异常处理函数(由 set_exception_handler() 注册)进行处理。 如果尚未注册异常处理函数,则按照传统方式处理:被报告为一个致命错误(Fatal Error)。

    Error 类并不是从 Exception 类 扩展出来的,所以用 catch (Exception $e) { … } 这样的代码是捕获不 到 Error 的。你可以用try{} catch (Error $e) { … } 这样的代码,或者通过注册异常处理函数( set_exception_handler())来捕获 Error。

    Error 异常层次结构

    Error
    ArithmeticError
    AssertionError
    DivisionByZeroError
    ParseError
    TypeError
    Exception
    ...

    实例

    <?php 
     
        class MathOperations  
        { 
           protected $n = 10; 
     
           // 求余数运算,除数为 0,抛出异常 
           public function doOperation(): string 
           { 
              try { 
                 $value = $this->n % 0; 
                 return $value; 
              } catch (DivisionByZeroError $e) { 
                 return $e->getMessage(); 
              } 
           } 
        } 
     
        $mathOperationsObj = new MathOperations(); 
     
        print($mathOperationsObj->doOperation()); 
     
    ?>

    以上程序执行输出结果为:
    Modulo by zero

    转载自技术拉近你我,原文地址:http://coderschool.cn/1749.html

  • 相关阅读:
    树形dp入门
    D. Kilani and the Game(多源BFS)
    C. Ayoub and Lost Array
    poj3254(状压dp)
    CodeForces
    链式前项星(模板)
    “东信杯”广西大学第一届程序设计竞赛(同步赛)H
    最小生成树kruskal模板
    hdu-4763(kmp+拓展kmp)
    poj-3080(kmp+暴力枚举)
  • 原文地址:https://www.cnblogs.com/psz1992/p/5326695.html
Copyright © 2011-2022 走看看