手机版

PHP异常处理浅析

时间:2021-11-06 来源:互联网 编辑:宝哥软件园 浏览:

服务器端编程语言(专业超文本预处理器的缩写)预定了两个异常类:异常和错误异常复制代码代码如下:异常{ /*属性*/受保护的字符串$ message//异常消息内容受保护的int $代码;//异常代码号受保护的字符串$文件;//抛出异常的文件名受保护的int $ line/抛出异常在该文件中的行号/* 方法*/public _ _ construct([string $ message=' '[,int $code=0 [,Exception $previous=null]])最终公共字符串getMessage (void ) //异常抛出的信息最终公共异常getPrevious (void ) //前一异常最终公共int getCode (void ) //异常代码,这是用户自定义的最终公共字符串getFile (void ) //发生异常的文件路劲最终公共int getLine (void ) //发生异常的行最终公共数组getTrace (void ) //异常追踪信息(数组)最终公共字符串gettracasstring(void)//异常追踪信息(字符串)公共字符串__toString (void ) //试图直接将异常对象当作字符串使用时调用子函数的返回值最终私有void __clone (void ) //克隆异常对象时调用}

复制代码代码如下:错误异常扩展了异常{ /*属性*/protected int $严重性;/* 方法*/public _ _ construct([string $ message=' '[,int $code=0 [,int $severity=1 [,string $filename=__FILE__ [,int $lineno=__LINE__ [,异常$previous=NULL ]]]])最终公共int getSeverity (void ) /*继承的方法*/最终公共字符串异常:获取消息(无效)最终公共异常异常:3360获取以前的(无效)最终公共(同Internationalorganizations)国际组织异常33603360获取代码(无效)最终公共字符串异常3360:getFile(无效)最终公共(同Internationalorganizations)国际组织异常3360:getLine(无效)最终公共数组异常:3360获取跟踪(无效)最终公共字符串异常:3:3360

那么如何捕获异常?

(1)PHP可用尝试.捕捉.捕获异常,进行异常处理的代码必须在尝试代码块内。复制代码代码如下:try {抛出新异常('异常测试1 ',1001);} catch(异常$e) { echo $e-getMessage().'-'.$ e-GetCode();}

(2)用户可以自定义异常处理函数[set_exception_handler],用于没用用尝试/捕捉捕获的异常。复制代码代码如下:函数exception _ handler($ e){ echo ' Uncaped exception : ',$e - getMessage(),' \ n ';} set _ exception _ handler(' exception _ handler ');引发新异常("未捕获的异常");"回声"这行不会执行了;

可以看到使用ser_exception_handler回调函数处理异常,后续的代码不会继续执行,但试捕可以(3)PHP可用多捕捉捕获不同类型异常,并允许在捕捉代码块内再次抛出异常。复制代码代码如下://请根据实际扩展异常类类我的例外扩展了异常{ public function _ _ construct($ message=' ',$ code=0){ } public function my function(){ echo }仅用于测试;} }尝试{抛出新的MyException('错误');} catch(MyException $ e){ echo $ e-my function();} catch(Exception $ e){ echo $ e-getMessage();}(4)PHP5.5已经支持最后关键词,你无需关心异常是否溢出了。

可对比如下:

复制代码代码如下:函数dosometing(){ $ resource=create resource();try { $ result=user esource($ resource);} catch(异常$ e){释放资源($ resource);日志($ e-Getmessay());exit();}释放资源($ resource);返回$ result}//使用最后后函数do someting(){ $ resource=create resource();try { $ result=user esource($ resource);返回$ result} catch(异常$ e){ log($ e-getMessage());exit();}最后{释放资源($ resource);}}

版权声明:PHP异常处理浅析是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。