PHP异常处理
说起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异常体系图
请登录后再评论