PHP 错误处理

2024-01-14

提前谢谢大家了。

我目前正在调整/改进我为公司从头开始编写的 MVC 框架。它相对较新,因此肯定是不完整的。我需要将错误处理合并到框架中(一切都应该能够访问错误处理),并且它应该能够处理不同类型和级别的错误(用户错误和框架错误)。我的问题是做到这一点的最佳方法和最佳机制是什么?我知道 PHP 5 异常处理和 PEAR 不同的错误机制,但我从未使用过它们中的任何一个。我需要一些高效且易于使用的东西。

创建我自己的错误处理或使用已经制作的东西会更好吗?任何建议、提示、问题都受到欢迎。我最终认为以某种方式用 PHP 注册错误处理程序是很甜蜜的,这样我只需要抛出错误,然后决定如何处理它以及是否继续。

编辑:抱歉,我应该提供有关我想要记录的错误类型的更多详细信息。我希望记录两种主要类型的错误:用户和框架。

对于用户错误,我指的是错误的网址(404)、非法访问受限页面等。我知道我可以重新路由到主页或只是脱口而出一个 JavaScript 对话框,但我希望能够优雅地处理这些错误并在变得明显时添加更多用户错误。

我所说的框架错误是指无法连接到数据库、有人意外删除了数据库表或以某种方式删除了文件等。

另外,我将负责开发和实时服务器处理。


我最终会认为它是甜蜜的 以某种方式注册错误处理程序 使用 PHP,这样我只需要 抛出错误,然后决定做什么 与它有关以及是否继续。

你完全可以做到这一点,设置错误处理程序() http://us.php.net/set_error_handler and 设置异常处理程序() http://us.php.net/set_exception_handler.

没有“一种正确的方法”来进行错误处理,但这里有一些需要考虑的事情。

  • trigger_error() 与 throw new Exception 类似,它们都会立即退出当前执行,只是trigger_error() 不可捕获。
  • 您希望如何在开发环境中处理错误(在屏幕上显示?)与在生产环境中处理错误(记录并通过电子邮件发送?)
  • 您可以使用上述函数从本质上将错误“转换”为异常,反之亦然
  • 并非所有错误类型都可以使用自定义错误处理程序进行处理
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PHP 错误处理 的相关文章

  • 如何在 json 中输出 javascript 日期

    我正在尝试时间线图表 http code google com apis visualization documentation gallery annotatedtimeline html Data Format http code go
  • 从 freshdesk api 获取所有用户时获取curl_error(): 2 不是有效的 cURL 句柄资源

    我正在创建自己的系统来管理通过其 API 来自 freshdesk com 的所有票证 我正在发出curl 请求以从freshdesk com 获取数据 通过获取与股票相关的数据 它的工作正常 但是当我通过curl请求请求所有用户时 它会给
  • 电子商务是否从头开始

    我需要开发一个包含电子商务部分的新网站 我来这里是想从你那里得到一些关于我应该走哪条路的提示 该网站将有一个静态部分 其中包括一些静态页面和用于销售产品的电子商务部分 我是 Django 和 PHP 开发人员 但这是我第一次需要开发电子商务
  • 用 PHP 截断文件末尾

    我有一个日志文件 我想在 PHP 读取该文件后将其截断 我的代码目前如下所示 fp fopen file r ftruncate fp 125000 fclose fp 但是 这会通过保留first1MB 不过 我想保留last1Mb 的文
  • 在 CodeIgniter 中添加新页面

    对于我对 CodeIgniter 和 MVC 系统的无知 我提前表示歉意 我正在帮助一位家庭成员处理他们的商业网站 到目前为止 我已经能够仅通过逻辑来完成大部分所需的更改 但现在我已经走进了死胡同 我不打算继续支持他们 因为我显然不是 Co
  • 使用 PHP 更新 XML 节点

    我有一个 XML 文件 test xml
  • 如何在没有 session_destroy 的情况下销毁 Zend_Session_Namespace

    我使用以下方法在临时会话中存储一些值 job new Zend Session Namespace application 我如何只销毁会话应用无需清除所有会话 要从会话中删除值 请对对象属性使用 PHP 的 unset 函数 假设 job
  • 如何使用 php DOM 获取 内的值?

    我如何使用 php DOM 获取 内的值 这是我的 xml 中的一些代码
  • PHP 中的静态类初始值设定项

    我有一个带有一些静态函数的辅助类 类中的所有函数都需要一个 重 初始化函数来运行一次 就好像它是一个构造函数 有实现这一目标的良好实践吗 我唯一想到的就是打电话init函数 如果它已经运行过一次 使用静态 initialized变种 问题是
  • 使用第三方库记录来自 PHP 应用程序的所有 cURL 请求

    好吧 我的 PHP Yii2 应用程序遇到了困难 我需要记录来自应用程序的每个传入和传出请求 传入的请求可以轻松地记录在 PHP 本身中 在引导阶段添加一些处理程序 这很容易 但真正的问题是我正在使用许多第三方库 即 Amazon MWS
  • 在 PHP 中将整数转换为十六进制值

    如何将PHP中第一类中的数字转换为第二类中的数字 是否有内置函数来转换数字 也是我的标题 将整数转换为十六进制值 甚至正确 class Permission const READ 1 const UPDATE 2 const DELETE
  • 通过 post 使用 php 发送 XML

    我知道有很多类似的问题 但我尝试过摆弄所有的解决方案 但似乎无法使其发挥作用 我正在尝试将 xml 直接发布到 Web 服务并获得响应 从技术上讲 我正在尝试连接到freightquote com 您可以在右上角找到该文档this http
  • 如何从另一个数组值中过滤数组值并返回新数组? [复制]

    这个问题在这里已经有答案了 我有两个数组 all languages and taken languages 第一个包含所有语言 例如 200 种或其他语言 第二个包含之前选择的语言 从 0 到 200 种 我需要删除所有已采用的语言 ta
  • Yii 未检测到骆驼案例操作

    伊伊正在给我404 Error如果我声明这样的操作 站点控制器 php public function actionRegisterUser 这就是我在main php label gt Register User url gt site
  • PHP 中的异或加密

    我是 Xor 加密的新手 并且在使用以下代码时遇到了一些问题 function xor this string Let s define our key here key magic key Our plaintext ciphertext
  • Lumen:无法打开流:.../vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php:107 中的权限被拒绝

    My OS is ubuntu 16 04 and I am running Lumen 5 5 When I try to run the app in the browser I get an error 500 我在 var log
  • PHP-如何根据条件配对数组中的项目

    如何将数组中的项目配对 假设我有一个数组Fighters 我想根据他们的情况将他们配对Weights 体重最接近的拳手应作为配对最佳匹配 但如果他们是在同一个团队中 他们不应该配对 团队 1 战斗机A体重为60 战斗机B体重为65 2队 战
  • 控制数据是否存在于数组中

    我在mysql中有两个不同的表 我正在使用curl从json文件中获取数据 我的第一个表名称是 tblclients 该表存储客户端数据 我的第二个表名称是 tblcustomfieldsvalues 该表使用 tblclients 表的
  • 使用 Webmin 设置 cron 作业

    我正在尝试使用 Webmin 设置一个 Cron 作业每 5 分钟运行一次 它需要定位 php 文件并运行该文件中的 php 脚本 当我在 命令 字段中输入文件路径时 它不起作用 我只是想知道我做错了什么 以及我需要 Cron 作业运行的文
  • Mysql加密/存储敏感数据,

    我的 PHP 网站有以下内容 启用 SSL 饼干 session set cookie params cookieParams lifetime cookieParams path cookieParams domain secure ht

随机推荐

  • iPhone 4" 屏幕上的 xcassets 无法提取正确的图像

    我正在尝试将 Images xcassets 实现到我正在开发的项目中 据我了解 我可以将不同设备的所有不同大小的图像放在那里 然后调用 UIImage imageNamed name of image set 它将返回我正在处理的设备的正
  • Access 和 SQL Server 计算日期的方式不同

    我们有一些通用工具 除其他外 可以保存和显示日期 它将把它保存为一个数字 例如 41247 如果我将其转换回 Access 中的日期 我会得到 2012 12 04 这是正确的 使用 Format 41247 常规日期 或 Format F
  • 将 XML jQuery 对象转换为字符串

    我有一个上传的 xml 文件 我正在使用 jQuery 通过var ts parseXML filecontents 在 XML 文档中查找对象时 我尝试使用以下方法转换回原始源 div append ts find Object clon
  • “新运营商”和“新运营商”之间的区别?

    新运营商 和 新运营商 有什么区别 我通常会尝试用不同的措辞来更好地区分两者 但无论如何 这是一个好问题 Operator new 是一个分配原始内存的函数 至少在概念上 它与malloc 尽管这相当不寻常 除非您正在编写类似自己的容器的东
  • 如何修复无法转换类型错误?

    我想创建一个有关电影的详细信息页面 但我收到此错误并且有点卡住了 我收到无法转换类型错误 我确实理解该错误 但我不知道如何修复它 这是 PAP 实体的索引 也是数据库实例 public class MoviesController Cont
  • NSToolbarItem 的自动样式/着色

    有没有办法告诉 OS X 自动设置样式 着色NSToolbarItem 我通过 IB Xcode 添加了一个 图像工具栏项 并将图标设置为黑色 PDF如文档中所述 https developer apple com library mac
  • 如何在组件类中使用调度(react-redux)

    My code class LoginPage extends Component render return div div
  • 什么是 text/ping?这是一个新标准吗?它依赖于浏览器吗?

    我正在对 Google 上的某些问题进行故障排除 并看到从浏览器到 Google 服务器的此请求 它是非阻塞的 这是新事物吗 它的文档在哪里 Chrome 是否不等待响应 Request URL https www google com u
  • 使用 C# 动态构建 XML

    我必须根据用户输入动态创建一个 XML 文件 这是我的想法 但我遇到了两个问题 如果存在相同元素的集合 MaxOccurs 10 例如 如果用户输入了 4 个帐户 那么我的代码应该如何 如果有选择的话 根据所选元素 子元素应该发生变化 有人
  • Linux 点阵打印机上的 Java 打印质量

    我需要将报告从 Java 桌面应用程序打印到点阵打印机 Epson LX 300 II 报告由文本和一些图形组成 打印机通过 USB 连接 我使用 CUPS 进行打印 我正在使用 Printable 接口 Java 中相当标准 进行打印 我
  • 尝试在 JFrame 中显示 URL 图像

    尝试在 JFrame 窗口中显示 URL 图像 如果工作正常 当程序运行时 应该打开一个窗口显示图像 尝试尝试 URL 和硬盘路径 import java awt image BufferedImage import java io IOE
  • MVC6 Cors - 拦截飞行前

    我正在将 WebApi 升级到 MVC6 在 WebApi 中 我可以拦截每个 HTTP 请求 如果是预检 我可以使用浏览器可接受的标头进行响应 我试图弄清楚如何在 MVC6 WebApi 中做同样的事情 这是 WebApi 代码 prot
  • 似乎无法在 text() 和 textfield() 之间使用 Spacer()

    当我在 HStack 中并尝试在 Text 和 Textfield 视图之间创建空间时 我似乎无法使用 Spacer 函数 间隔器用于间隔视图的其他区域 但每当我尝试在这两个元素之间间隔时 它就不起作用 这是我正在使用的代码 VStack
  • Kendo UI MVC 4:窗口内的表单验证不会触发

    使用 ASP NET MVC 4 我声明了一个窗口 其中通过 LoadContentFrom 加载了内部内容 表单 Html Kendo Window Name windowAttachClient Title Attach Client
  • d3.json() 回调中的代码未执行

    我正在尝试加载 GeoJSON 文件并使用它作为 D3 的基础来绘制一些图形v5 问题是浏览器跳过了包含在d3 json 称呼 我尝试插入断点来测试 但浏览器会跳过它们 我不明白为什么 下面的代码片段 d3 json trip animat
  • EF5 Code First - 数据注释与 Fluent API [重复]

    这个问题在这里已经有答案了 我是实体框架新手 即将开始使用 EF5 Code First 的新 ASP NET MVC 项目 据我了解 您可以对域模型对象中的属性使用数据注释 也可以使用 Fluent API 来定义属性数据类型 创建对象时
  • 将 CSS 样式应用于 DIV 内的所有元素

    我想将 CSS 文件应用到页面中的具体 DIV 这是页面结构 div div all the elements here must follow a concrete CSS rules div 我尝试应用 CSS 文件的规则进行编辑 CS
  • Vim 输入不是来自终端[重复]

    这个问题在这里已经有答案了 which django admin py vim Vim Warning Input is not from a terminal Vim Error reading input exiting Vim Fin
  • 如何解决Java舍入双精度问题[重复]

    这个问题在这里已经有答案了 似乎减法引发了某种问题 并且结果值是错误的 double tempCommission targetPremium doubleValue rate doubleValue 100d 78 75 787 5 10
  • PHP 错误处理

    提前谢谢大家了 我目前正在调整 改进我为公司从头开始编写的 MVC 框架 它相对较新 因此肯定是不完整的 我需要将错误处理合并到框架中 一切都应该能够访问错误处理 并且它应该能够处理不同类型和级别的错误 用户错误和框架错误 我的问题是做到这