首页 > 作文

PHP异常处理浅析

更新时间:2023-04-06 18:36:25 阅读: 评论:0

php预定了两个异常类:exception和errorexception

复制代码 代码如下:

exception {

/* 属性 */

protected string $message ; //异常消息内容

protected int $code ; //异常代码号

protected string $file ; //抛出异常的文件名

protected int $line ; //抛出异常在该文件中的行号

/* 方法 */

public __construc开启tftp服务器t ([ string $message = “” [, int $code = 0 [, exception $previous = null]]] )

final public string getmessage ( void ) //异常抛出的信息

final public exception getprevious ( void ) //前一异常

final public int getcode ( void ) //异常代码,这是用户自定义的

final public string getfile ( void ) //发生异常的文件路劲

final public int getline ( void ) //发生异常的行

final public array gettrace ( void ) //异常追踪信息(array)

final public string gettraceasstring ( void非全日制学历 ) //异常追踪信息(string)

public string __tostring ( void ) //试图直接 将异常对象当作字符串使用时调用子函数的返回值

final private void __clone ( void ) //克隆异常对象时调用

}

复制代码 代码如下:

errorexception extends exception {



/* 属性 */

protected int $verity ;

/* 方法 */



public __construct ([ string $message = “” [, int $code = 0 [, int $verity = 1 [, string $filename = __file__ [, int $lineno = __line__ [, exception $previous = null ]]]]]] )

final public int getverity ( void )

/* 继承的方法 */

final public string exception::getmessage ( void )

final public exception exception::getprevious ( void )

final public int exception::getcode ( void )

final public string exception::getfile ( void )

final public int exception::getline ( void )

final public array exception::gettrace ( void )

final public string exception::gettraceasstring ( void )

public string exception::__tostring ( void )

final private void exception::__clone ( void )

}

那么如何捕获异常?

(1)php锦鲤鱼的饲养可用try…catch…捕获异常,进行异常处理的代码必须在try代码块内。

复制代码 代码如下:

try {

throw new exception(‘exception test 1’, 1001);

} catch(exception $e) {

echo $e->getmessage().’-‘.$e->getcode();

}

(2)用户可以自定义异常处理函数[t_exception_handler],用于没用用try/catch捕获的异常。

复制代码 代码如下:

function exception_handler ( $e ) {

echo “uncaught exception: ” , $e -> getmessage (), “\n” ;

}



t_exception_handler ( ‘exception_handler’ );



throw new exception ( ‘uncaught exception’ );



echo “这行不会执行了”;

可以看到使用r_exception_handler回调函数处理异常,后续的代码不会继续执行,但try-catch可以。
(3)php可用多catch捕获不同类型异常,并允许在catch代码块内再次抛出异常。

复制代码 代码如下:

//请根据实际扩展异常类

class myexception extends exception {

public function __construct($message = ”, $code = 0) {



}


葱白是什么
public function myfunction() {

echo ‘just for test’;

}

}



try {

throw new myexception(‘an error’);

} catch (myexception $e) {

echo $e->myfunction();

} catch (exception $e) {

echo $e->getmessage();

}

(4)php5.5已经支持finally关键词,你无需关心异常是否溢出了。

可对比如下:

复制代码 代码如下:

function dosomething() {

$resource = createresource();

try {

$result = uresource($resour北大自主招生ce);

} catch (exception $e) {

relearesource($resource);

log($e->getmessage());

exit();

}

relearesource($resource);

return $result;

}



//使用finally后

function dosomething2() {

$resource = createresource();

try {

$result = uresource($resource);

return $result;

} catch (exception $e) {

log($e->getmessage());

exit();

} finally {

relearesource($resource);

}

}

本文发布于:2023-04-06 18:36:23,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/0701ddfa7aff6b8229c16670d9b3bd7a.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:PHP异常处理浅析.doc

本文 PDF 下载地址:PHP异常处理浅析.pdf

下一篇:返回列表
标签:异常   代码   抛出   时调
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图