一般统一的错误处理机制是使用[异常],PHP也提供了异常的功能,但异常对概念及知识面都有要求,才能用好,为避免复杂,所以不使用异常作为统一的错误处理.
网站程序的错误处理,最常用的就是中断程序执行,显示给用户一个提示框,比如在控制器中使用 showmessage() 进行错误提示,所以,在控制器中直接使用 showmessage() 中提示即可.
不过,showmessage() 并不适合在类方法及函数中使用,因为有时调用者需要自己对错误进行处理,比如,错误提示使用 JS 的 alert() 弹出,而不是显示一个 html 页面,因此,要统一的是类方法中及函数中的错误处理.
保守的写法是函数返回 true 或 false,并通过比如传地址的参数传递错误信息:
bool func_name(& $error)
类方法则在类中定义一个 get_error() 之类的方法返回最后一次错误信息.
但是,当出现然"地支持错误信息的向上传递,手动模拟的向上传递代码写起来都很麻烦,不愿意写.
网站程序的错误处多层调用时,比如 调用者 -> A() -> B() -> C() ,在 C 函数中出现错误,这种方式要传递错误信息就很麻烦了:B() 要处理并兼容 C() 的错误处理,A() 要兼容 B() 的错误处理.
只有异常才很"自理,就是想在发生错误时默认就给用户一个提示并中断程序执行,并且当调用者需要自定义如何处理错误时允许调用者自定义.
所以,统一的错误处理就是默认直接对用户进行中断提示,比如数据库插入错误,又允许调用者需要的时候可以自定义处理错误,比如使用 JS 弹出错误信息.
于是,引入 gerr 类统一网站程序的错误处理:
gerr 类位于 /include/gerr.class.php,类名为 gerr,所有方法都为静态方法,无需也无法实例化.phprm.com
当方法或函数中出现错误时,调用 gerr::error() 设置错误信息并返回 false.
默认 gerr::error() 会调用 showmessge() 进行错误提示。
当调用者需要自定义处理错误时,可以调用 gerr::func_set() 设置一个自定义的错误处理函数,gerr::error() 便会调用调用者设置的错误处理函数进行错误处理.
一般来说错误处理方式都是由控制器决定的,所以 gerr::func_set() 一般是在控制器中调用。可以使用 gerr::func_reset() 把错误处理函数重置为默认函数。
在方法和函数中,可以使用 gerr::check() 检查是否已发生错误(一般发生错误都需要中断程序执行,不中断继续执行只会发生更多的错误),防止已发生的错误未被处理.
若类方法或函数使用"流程"的形式组织(比如要先 fopen 后才能 fwrite),在流程开始时调用 gerr::start() 让 gerr 进行流程的初始化,在流程成功完成后调用 gerr::end() 通知 gerr 流程已结束。
可以使用 gerr::get() 取得错误信息。
一个使用 gerr 的函数示例:
function myerr() { if (false) { gerr::error('发生错误了', __FILE__, __LINE__, __FUNCTION__); return false; } return true }
本文地址:
转载随意,但请附上文章地址:-)

PHP是一种流行而强大的服务器端编程语言,可以用来开发各种Web应用程序。就像其他编程语言一样,PHP也有可能会出现错误和异常。这些错误和异常可能由各种原因引起,如程序错误、服务器错误、用户输入错误等等。为了确保程序的运行稳定性和可靠性,PHP提供了一套完整的错误处理机制。PHP错误处理机制的基本思想是:当发生错误时,程序会停止执行并输出一条错误消息。我们可

如何处理PHP中的语法错误引言:在开发PHP程序时,经常会遇到语法错误的情况。语法错误是由于代码违反了PHP语法规则所引起的,它会导致脚本无法正确执行。本文将介绍一些处理PHP语法错误的方法,并提供相应的代码示例。使用错误提示功能PHP提供了丰富的错误提示功能,在开发过程中可以打开这些提示,以便及时发现和解决语法错误。可以通过设置erro

PHP文件操作错误的处理方法及生成相应报错信息在使用PHP进行文件操作时,可能会遇到各种错误,如找不到文件、权限错误等。这些错误可能会导致程序无法正常运行,因此合理处理文件操作错误是非常重要的。本文将介绍PHP文件操作错误的处理方法,并展示如何生成相应的报错信息。一、错误处理方法使用错误控制运算符PHP提供了错误控制运算符“@”,可以在执行可能出错的语句前添

如何处理PHP文件路径错误并生成对应的报错信息在开发和维护PHP应用程序时,经常会遇到文件路径错误的情况。当引用一个不存在的文件或者指定了错误的路径时,在PHP中会抛出一个致命错误,导致应用程序无法正常运行。为了更好地调试和处理这种情况,我们可以通过以下方式来处理PHP文件路径错误,并生成对应的报错信息。使用绝对路径在引用文件时,尽量使用绝对路径而不是相对路

如何进行PHP后端功能开发的错误处理?作为一名PHP后端开发人员,在开发过程中,我们经常会遇到各种错误。良好的错误处理是保证系统稳定性和用户体验的重要因素。在本文中,我将分享一些如何进行PHP后端功能开发的错误处理的方法和技巧,并提供相应的代码示例。设置错误报告级别PHP提供了一个错误报告级别参数,可以通过设置来定义要报告的错误类型。使用error_repo

解决PHP报错:调用未定义的类方法在进行PHP开发过程中,经常会遇到调用未定义的类方法的报错。这种情况一般是由于代码编写不规范或者使用的类方法不存在而导致的。下面我们将介绍一些解决该问题的常见方法。检查类方法是否存在当报错提示调用未定义的类方法时,首先要检查该方法是否存在于对应的类中。通过使用method_exists()函数可以检查某个类是否存在某个方法。

PHP错误处理:最佳实践和建议在编写PHP代码时,错误处理是一项非常重要的任务。如果不正确地处理错误,就会导致应用程序中的漏洞和安全问题。同时,良好的错误处理还有助于提高代码的可维护性和可扩展性。本文将介绍一些PHP错误处理的最佳实践和建议,并提供一些代码示例。使用异常处理在PHP中,异常是一种用于处理运行时错误的机制。通过使用异常,可以将错误

处理PHP源代码中index报错的方法在PHP开发过程中,经常会遇到"indexundefined"的报错。这种报错通常是由于尝试访问数组或对象中不存在的索引而引起的。解决这种问题的方法有很多种,以下将结合具体的代码示例来展示几种处理的方法。方法一:使用isset()函数isset()函数用于检查变量是否已经被声明以及是否有值。通过使用isset()函数,


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

MinGW - 适用于 Windows 的极简 GNU
这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

SublimeText3 英文版
推荐:为Win版本,支持代码提示!

DVWA
Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

VSCode Windows 64位 下载
微软推出的免费、功能强大的一款IDE编辑器