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