php - 将 PHP 异常存储在数组中

标签 php error-handling exception

我真的不确定这是否是正确的方法,因为异常对我来说真的是一个新鲜的主题。是否可以捕获多个异常(让脚本继续执行),然后将异常存储在一个数组中,以便能够返回所有引发的异常?

话虽如此,如果能够使用异常而不只是显示杀死应用程序(脚本)的错误,那就太棒了

谢谢!

最佳答案

起初,异常处理并不像看起来那么琐碎,所以您应该花点时间在这上面。 :-)

您应该将异常显式视为您无法在当前代码/函数中处理的错误。如果你能解决问题,就不需要抛出和处理异常。
不要将其用作处理预期行为的机制。

当然可以捕捉到多个异常,继续代码执行并将它们存储在一个数组中,但这没有意义。如果您确实遇到了无法在当前代码中处理的错误(例如突然关闭的套接字等),则可以通过代码中的异常来解决。那么规则是:
只有当你可以用它做一些有用的事情或抛出另一个异常时才捕获异常

要跟踪应用程序中的错误,您应该使用其他技术,而不是将它们存储在数组中并稍后检索它们。使用日志记录(有优秀的框架,例如 Log4PHP )来记录次要的应用程序错误和警告。

By that said, it would be awesome to be able to use exceptions to more than just showing an error that kills the application (script)

只有在您无能为力的情况下,异常才应该终止应用程序。同样在大多数情况下,最好在脚本的最高级别捕获所有异常,使用堆栈跟踪记录错误并向用户显示一个友好的错误消息,而不是仅仅“杀死”所有内容。 :-)

有关语法示例,请参阅 W3Schools PHP Exception Handling . 关于此主题的较大文章发布在 Devshed 上.

关于php - 将 PHP 异常存储在数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2744338/

相关文章:

php - Codeigniter 迁移自动和 key 问题

php - 通过 Graph API 获取 facebook 用户的国家/地区名称

javascript - jQuery 隐藏所有而不是只隐藏不活动

node.js - 如何在Node.js中管理HTTP错误

javascript - 控制台向我显示 Angular 7 中的 ExpressionChangedAfterItHasBeenCheckedError

symfony - symfony2自定义错误页面并扩展

python - 需要处理keyerror异常python

java - HTTPS 主机名错误 : should be <sub. domain.com>。这是什么原因造成的?

android - RuntimeException 无法启动 Activity .. InflateException 二进制 XML 行 #37 : Error inflating class com. android.internal.widget.ActionBarView

php - 在php和android之间传递数据的最简单方法