千家信息网

PHP异常类的处理方法

发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,这篇文章主要讲解了"PHP异常类的处理方法",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"PHP异常类的处理方法"吧!PHP预定了两个异常类:Excep
千家信息网最后更新 2025年01月20日PHP异常类的处理方法

这篇文章主要讲解了"PHP异常类的处理方法",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"PHP异常类的处理方法"吧!

PHP预定了两个异常类:Exception和ErrorException

复制代码 代码如下:


Exception {
/* 属性 */
protected string $message ; //异常消息内容
protected int $code ; //异常代码号
protected string $file ; //抛出异常的文件名
protected int $line ; //抛出异常在该文件中的行号
/* 方法 */
public __construct ([ 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 $severity ;
/* 方法 */

public __construct ([ string $message = "" [, int $code = 0 [, int $severity = 1 [, string $filename = __FILE__ [, int $lineno = __LINE__ [, Exception $previous = NULL ]]]]]] )
final public int getSeverity ( 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)用户可以自定义异常处理函数[set_exception_handler],用于没用用try/catch捕获的异常。

复制代码 代码如下:


function exception_handler ( $e ) {
echo "Uncaught exception: " , $e -> getMessage (), "\n" ;
}

set_exception_handler ( 'exception_handler' );

throw new Exception ( 'Uncaught Exception' );

echo "这行不会执行了";

可以看到使用ser_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 = useResource($resource);
} catch (Exception $e) {
releaseResource($resource);
log($e->getMessage());
exit();
}
releaseResource($resource);
return $result;
}

//使用finally后
function doSomething2() {
$resource = createResource();
try {
$result = useResource($resource);
return $result;
} catch (Exception $e) {
log($e->getMessage());
exit();
} finally {
releaseResource($resource);
}
}

感谢各位的阅读,以上就是"PHP异常类的处理方法"的内容了,经过本文的学习后,相信大家对PHP异常类的处理方法这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

代码 方法 处理 信息 内容 函数 文件 学习 对象 属性 时调 用户 不同 两个 关键 关键词 再次 字符 字符串 实际 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 软件开发项目负责人年薪 阿里云服务器放在海里吗 服务器性能优化工具 局域网内2台电脑都加了域服务器 网络安全软件挣钱图片 iptv服务器接入爱快路由器 贵阳电话软件开发具体地址 北京国家计算机网络安全展会 网络安全和隐私计算 淮安淘客app软件开发 荔枝直播软件开发 怎么下载oracle数据库 太仓市高新贝迪软件开发公司 海信收银系统会员数据库 相片书的专业软件开发公司 母婴网站一般需要什么数据库 hbase是什么类型数据库 江西省赣州市网络安全宣传周 无线网络技术试题 内蒙古数字化城管软件开发公司 软件开发面试数据库题目 北京佳达互联网科技有限公司 高速列车网络技术题库 使用sql语句创建数据库 汕尾导航软件开发 软件开发代码分支管理 网络安全三同步定义 吉林语音网络技术服务资费 服务器带ups 独立完成数据库搭建需要多久
0