当前位置:  首页>> 技术小册>> PHP8入门与项目实战(5)

错误处理也叫意外处理。通过使用try…throw…catch结构和一个内置函数Exception()来“抛出”和“处理”错误或异常。

下面通过打开文件的实例介绍意外的处理方法和技巧。

【例9.12】

运行结果如图9-15所示。

【案例分析】
(1)fopen()函数打开$DOCUMENT_ROOT/book.txt文件进行读取,但是由于book.txt文件不存在,因此$fp为false。

(2)try区块判断$fp为false时抛出一个异常。此异常直接通过new关键字生成Exception()类的实例。异常信息是传入参数定义的“文件路径有误或找不到文件”。

(3)catch区块通过处理传入的Exception()类实例显示出错误信息、错误文件、错误发生行。这些是通过直接调用Exception()类实例$exception的内置类方法获得的。错误信息由getMessage()生成,错误文件由getFile()生成,错误发生行由getLine()生成。

补充:
处理异常有什么规则?

(1)需要进行异常处理的代码应该放入try代码块内,以便捕获潜在的异常。

(2)每个try或throw代码块必须至少拥有一个对应的catch代码块。

(3)使用多个catch代码块可以捕获不同种类的异常。

(4)可以在try代码块内的catch代码块中再次抛出(re-thrown)异常。

PHP 8在异常处理方面有什么新变化?

PHP 8改变了大多数错误的报告方式。不同于PHP 5的传统错误报告机制,现在大多数错误被作为Error异常抛出。这种Error异常可以像普通异常一样被try/catch块所捕获。如果没有匹配的try/catch块,则按照传统方式处理:被报告为一个致命错误(Fatal Error)。


该分类下的相关小册推荐: