PHP异常处理

作者: 温新

分类: 【PHP基础】

阅读: 1682

时间: 2021-05-30 15:43:21

说起PHP中的异常,就要说到PHP错误的处理。什么是异常,什么是错误?下面做个简单的记录。

什么是异常

异常:指程序运行中出现不符合预期的情况。异常可以被try-catch捕捉到。

什么是错误

PHP中的错误,一般是程序自身所导致的,出现非法语法等无法编译通过甚至无法运行的情况。常遇见的有notice、fatal error等。这些是无法被异常捕捉到的,必须解决后程序才能正常运行。

PHP中的错误级别

Parse error > Fatal Error > Waning > Notice > Deprecated

PHP异常处理

PHP7实现了一个全局的Throwable接口,原有Exception与部分Error都实现了该接口。捕获异常案例如下:

<span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(152, 26, 26)"><?</span><span style="box-sizing: border-box;color: rgb(0, 0, 0)">php</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">    </span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(119, 0, 136)">try</span> {</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"> <span style="box-sizing: border-box;color: rgb(170, 85, 0)">// say();</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"> <span style="box-sizing: border-box;color: rgb(170, 85, 0)">// 5/0;</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"> <span style="box-sizing: border-box;color: rgb(0, 85, 170)">$a</span> <span style="box-sizing: border-box;color: rgb(152, 26, 26)">=</span> <span style="box-sizing: border-box;color: rgb(119, 0, 136)">new</span> <span style="box-sizing: border-box;color: rgb(0, 0, 0)">A</span>();</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">} <span style="box-sizing: border-box;color: rgb(119, 0, 136)">catch</span> (<span style="box-sizing: border-box;color: rgb(0, 0, 0)">Throwable</span> <span style="box-sizing: border-box;color: rgb(0, 85, 170)">$e</span>) {</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"> <span style="box-sizing: border-box;color: rgb(119, 0, 136)">echo</span> <span style="box-sizing: border-box;color: rgb(0, 85, 170)">$e</span><span style="box-sizing: border-box;color: rgb(152, 26, 26)">-></span><span style="box-sizing: border-box;color: rgb(0, 0, 0)">getMessage</span>();</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">} <span style="box-sizing: border-box;color: rgb(119, 0, 136)">finally</span> {</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"> <span style="box-sizing: border-box;color: rgb(119, 0, 136)">echo</span> <span style="box-sizing: border-box;color: rgb(170, 17, 17)">'finally'</span>;</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">}</span>

PHP异常体系图

PHP异常.png

请登录后再评论