php - 模型中的错误处理 (MVC)

标签 php model-view-controller error-handling model

我想知道处理模型中错误的异常(exception)标准是什么。

目前,我的所有模型都在使用“setError”和“getError”方法。

这意味着我只关心对模型中方法的调用是真还是假。如果它为假,那么我会在我的 Controller 中使用 $this->model->getError()

此外,我正在考虑设置一个包含我所有错误的单独文件。每个模型一个文件,也想对此有想法。

最佳答案

一个更简单的解决方案是使用 exceptions .

当您向用户显示的错误发生时,抛出一种特殊类型的异常 - 可能名为 UserError。抛出异常时,异常应包含错误消息的文本。这些类型的错误是功能,可为用户提供有用的信息(即他们试图删除不存在的内容 - 这可能在他们打开多个浏览器时发生,等等)

例如:

throw new UserError("That object no longer exists.");

当发生您想要对用户隐藏的错误时,抛出一种不同类型的异常,可能名为 InternalError。您可能希望记录 并允许程序继续运行,这样特定的错误就对用户隐藏了。如果它阻止某些事情发生,您可能想要抛出一条通用错误消息。这些将是 错误,您希望尽快修复它们。

例如:

throw new InternalError("Failed to connect to remote service");

所有错误消息都可以存储(硬编码)在抛出异常的源中。这不一定是一个糟糕的设计实践 - 如果您使用像 gettext 这样的工具,您可以轻松翻译所有这些消息。

关于php - 模型中的错误处理 (MVC),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1452063/

相关文章:

php - 'www' 文件夹和 'htdocs' 文件夹有什么区别?

php - 快速插入会导致数据丢失

c# - 使用自定义 header 的 MVC 重定向

python - 在自定义代码中处理NoneType异常

php - 如何使用 PHP 将大型 Excel 文件导入 MySql 数据库

php - 在 php 上使用 .htaccess 文件重写 URL

javascript - TypeScript 和 MVC

jquery - JavaScript MVC 框架

python - Tweepy 在 search_recent_tweets <> 上出现 401 错误,但在 create_tweet 时没有出现 401 错误?

vba - 将导致错误的对象返回给全局错误处理程序