PHP7 中的 PHP 错误
简介
在 PHP 7 之前,PHP 解析器会根据各种情况报告错误。每个错误都属于特定的预定义类型。PHP7 改变了错误报告机制。现在大多数错误都通过抛出错误异常来报告,而不是传统的错误报告方式。
如果错误异常未得到处理,则会报告致命错误,并像传统错误情况一样进行处理。PHP 的错误层次结构从 Throwable 接口开始。所有预定义错误,例如 ArithmeticError、AssertionError、CompileError 和 TypeError,都是实现 Throwable 接口的类。 PHP 7 中的异常也实现了 Throwable 接口。
Throwable 接口是任何可以通过 throw 语句抛出的对象的基础,包括 Error 和 Exception 对象。用户定义的类不能直接实现 Throwable 接口。相反,要声明用户定义的异常类,它必须扩展 Exception 类。
PHP 的异常处理由 throw、catch 和 try 语句组成。要引发异常对象,可以使用 throw 关键字。抛出的异常由 catch 块处理。可能存在异常漏洞的 PHP 代码包含在 try 块中。
可以使用一个或多个 catch 块来捕获不同的 Exception 类实例。如果 try 块中未发生异常,则在最后一个 catch 块之后将继续正常执行。但是,当异常在 try 块中抛出时,PHP 不会执行 nest 语句,而是尝试查找与待处理异常类型匹配的 catch 块。如果没有定义匹配的 catch 块,PHP 解析器将报告 致命错误 和 未捕获异常 消息。
您也可以在 catch 块之后或代替 catch 块提供 finally 块。无论 try 块中是否发生异常,finally 块中的代码都将始终执行。

