当前位置:首页 > 日记 > 正文

PHP的面向对象编程(OOP)的学习笔记(四)-异常处理类发生

PHP的面向对象编程(OOP)的学习笔记(四)-异常处理类发生
使用异常

PHP5添加异常处理模块类似于其他语言,PHP代码生成异常可以抛出由catch语句的语句和捕获。代码需要例外处理必须放在try代码块捕获例外。每个尝试对应至少一个catch块。使用多个catch可以捕获不同阶级的产生异常。当try代码块不再抛出一个异常或不匹配被捕获异常,PHP代码将继续在跳到最后抓执行。当然,PHP可以扔掉(扔)在catch代码块的例外。

预定义的例外

异常类是所有异常的基类,我们可以通过派生异常类派生自定义异常。

复制代码代码如下所示:
{例外
属性
受保护的字符串$消息;异常消息内容
受保护的int代码
受保护字符串$文件
受保护的int行;在异常文件中抛出行号。
方法
公共__construct(字符串{ $消息=国际
最后的公共字符串GetMessage(void) / /得到异常消息内容
最后的公开的例外getprevious(void) / /回链在例外
最后的公共属性获得按键的ASCII码(void) / /得到异常代码
最后的公共字符串GetFile(void) / /得到异常的程序文件名
最后公开int getline(void) / /获得文件中的异常代码
最后公开阵列gettrace(void) / /得到异常跟踪信息
最后gettraceasstring字符串(void) / /得到异常跟踪信息的字符串类型
公共字符串__tostring(void) / /异常对象转换为字符串
私人最终无效__clone(void) / /病人
}
当我们了解了异常之后,我们尝试扩展异常类来实现一个自定义异常。

复制代码代码如下所示:
connecttodatabase()函数
{
如果(!$link = mysql_connect(Myhost
{
抛出新的异常(无法连接到数据库;
}
}
尝试
{
connecttodatabase();
}
catch(例外E)
{ echo $ E -> GetMessage();
}
这里我们抛出一类异常类型异常并捕获catch中的异常,最后打印出来无法连接到数据库..也许您也想显示数据库连接失败的原因.我们的自定义信息在下面实现,并通过扩展异常类来实现。

复制代码代码如下所示:
类myexception延伸例外
{
保护ErrorInfo美元;
在一些逻辑结构函数中,将一些信息传递给基类。
公共功能__construct($消息=零,代码= 0美元)
{
美元-> ErrorInfo =错误信息的自定义错误类;
家长::__construct(美元的消息,美元的代码);
}
方法提供对自定义类信息的访问。
公共函数GetErrorInfo()
{
返回本- ErrorInfo;
}

*
*也可以在这里添加异常日志,只在上面的构造函数中调用。
*
* /
公共功能日志($文件)
{
file_put_contents(美元时,美元-> __tostring()(),file_append);
}
}
connecttodatabase()函数
{
把新的myexception(错误信息);
}
尝试
{
connecttodatabase();
}
抓住(myexception $ E)
{
echo $ E -> GetMessage()。;
echo $ E -> geterrorinfo();
}
set_exception_handler设置用户定义的异常处理程序

在函数调用时发生异常捕获的set_exception_handler.the函数的参数的名称必须在调用set_exception_handler定义(),该函数接受一个参数,这是一个被抛出的异常对象。这可以用来改善异常日志日志处理上面提到的。

复制代码代码如下所示:
功能exceptionlogger(美元除外)
{
文件大小= 'exceptionlog日志;
file_put_contents(美元时,美元__tostring异常>()(),file_append);
}
set_exception_handler(exceptionlogger);
1.3,PHP允许在catch代码块中抛出(抛出)异常。

复制代码代码如下所示:
尝试
{
#代码…
}
catch(例外E)
{
(如果)(a ->获得按键的ASCII码= 999)
{
#一些操作
}
其他的
{
扔E;
}
}
总结

异常是强大的,但不要认为我们可以滥用项目中的异常机制,特别是异常日志的广泛使用机制。这大大增加了系统的成本,降低了应用程序的性能,使用错误代码可以方便地管理错误信息。当错误消息被多次抛出时,使用错误代码是一个科学的选择。我们甚至可以允许错误消息通过错误代码支持多语言显示。

相关文章

最好超过20的MySQL性能优化经验分

最好超过20的MySQL性能优化经验分

经验分享,性能优化,电脑软件,MySQL,我们设计的数据库表结构时,我们需要注意数据操作的性能当我们操作数据库(特别是在查询的SQL语句)。在这里,我们不谈太多关于SQL语句的优化,但只有MySQL,Web应用最广泛的数据库。我希望下面的优化技术对你有用。…

无法登录QQ提示服务器超时,错误代码

无法登录QQ提示服务器超时,错误代码

超时,服务器,提示,无法登录,错误代码,问题: 近年来,计算机网络是正常的,就是不能登陆QQ。当你登录QQ,提示你服务器超时,错误代码0x00000001 的原因是什么 答案uff1a 计算机网络正常,表明网络连接正常,网络设置正常,出现上述现象,原因如下: 如果是…

Linux用户管理和组管理使用详细的

Linux用户管理和组管理使用详细的

图形化,用户管理,解决方案,创建用户,详细,点评:本文主要介绍linux用户管理和组管理(图形化linux创建用户和组),有需要的朋友可以参考下。 有Linux下的三类用户:1、超级用户:根具有操作系统的所有权限的UID 0 2、普通用户:普通用户的操作系统权限…

我回忆并回忆起一切都有你的记忆。

我回忆并回忆起一切都有你的记忆。

一切都,回忆起,记忆,电脑软件,亲爱的,我不做永远,但永远不会忘记。 亲爱的,我不是Haikudanlan的,就在你身边。 回忆是无形的月光,一只眼睛闭上黑暗。 城市是一个听不见的大海,当它转过身时,它独自一人坠落。 黑人和白人的承诺还没有得到遗憾。…

MySQL无符号使用和减去补码溢出解

MySQL无符号使用和减去补码溢出解

溢出,解决方案,补码,符号,电脑软件,无符号是一个非负数,这种类型可以增加数据的长度。 例如,如果字段的最大值是127,那么字段符号最大可以达到127×2 无符号的属性是唯一的整数,和二进制属性仅用于CHAR和VARCHAR。 类型 解释 TINYINT 非常小的…

计算机名称修改后oracle正常启动问

计算机名称修改后oracle正常启动问

启动,修改,名称,电脑软件,oracle,不久前,在旁边的老姐安装了甲骨文,发现老姐的电脑名字很长,不容易记住,而且一个寿阳,电脑名字稍微改了一点,没想到这一步可以苦破一个老人,一个悲剧就要开始了! U3000 当你改变计算机名称并重新启动计算机,发现甲骨…

winhlp32.exe-过程的程序是什么

winhlp32.exe-过程的程序是什么

过程,程序,电脑软件,exe,综述:简要介绍了winhlp32.exe -程序过程 进程文件:程序或winhlp32.exe 过程名称:微软Windows帮助 过程类别:安全风险的过程 英文描述: winhlp32.exe是微软Windows帮助文件查看器。这个过程打开了进程,也称为第一、第二…

教你解决Win8的IE10浏览器不兼容

教你解决Win8的IE10浏览器不兼容

不兼容,浏览器,教你,电脑软件,点评:作为Windows8的朋友都知道,系统的IE10兼容性很差。为了避免网站的兼容性,IE10集成了IE9 IE7和IE8的诸多旅游模式。 1。如果你打开IE10预览页面,当页面不兼容或者页面字体很拥挤。 2、可以按键盘上的F12开发者…

linux修改SSH端口的两种方法

linux修改SSH端口的两种方法

方法,修改,两种,端口,电脑软件,点评:本文主要介绍了两种修改linux ssh端口的方法,需要的朋友可以参考一下。 Linux港顺利修改sshd 第一: 1。如果您想更改SSH(22)的默认端口,那么您只需修改: 复制代码代码如下所示: 端口22 / / / sshd_config SSH…

是drvlsnr.exe过程安全吗过程drvls

是drvlsnr.exe过程安全吗过程drvls

过程,电脑软件,drvlsnr,exe,点评:drvlsnr.exe的康柏compaq驱动声卡相关程序的一部分 进程文件:drvlsnr或drvlsnr.exe 进程名称:drvlsnr 过程类别:安全风险的过程 英文描述: drvlsnr.exe是一个过程,安装与康柏驱动集成的数字,盛大,它也被称为对与…

Linux内核驱动fsync机制图解

Linux内核驱动fsync机制图解

机制,内核驱动,电脑软件,Linux,fsync,点评:该fasync机制是通过内核发送SIGIO信号实现通知机制,而不是通过休眠唤醒 Linux内核中的IO模型基本上分为4类: 1。同步块i O 2。同步非阻塞I / O 3、异步阻塞I/O 4。异步非阻塞I/O 同步:应用程序通过…

infotool.exe的过程是什么的infoto

infotool.exe的过程是什么的infoto

文件,过程,电脑软件,infotool,exe,点评:infotool.exe是领先尼禄的CD刻录软件相关工具 进程文件:infotool或infotool.exe 过程名称:Nero Toolkit 过程类别:安全风险的过程 英文描述: infotool.exe是工具是安装在前面的尼禄的CD,未来,它也被称为以…