php - 在模型或 Controller 中处理错误?

标签 php model-view-controller error-handling

我在各种 IRC channel 上四处询问,但无法得到明确解释的答案。应该在模型中还是在 Controller 中处理错误(与模型有关,例如事务失败)?

在此先感谢您的帮助。

编辑

好吧,令人困惑的是我的代码(在模型中)看起来已经像这样了:

try
{
    // Connect to MongoDB
    // Fetch a record
}
catch (MongoConnectionException $e)
{
    // Handle this error
}
catch (MongoException $e)
{
    // Handle this error
}

那么,我应该根据 MongoDB 返回的异常返回异常吗?或者我应该直接允许这些异常冒泡到 Controller 吗?

谢谢!

最佳答案

正确答案是“两者”,但主要是在模型中。

您的 Controller 要做的适当事情是简单地捕获模型抛出的一些异常,并处理输出一个漂亮的“whups”消息。根据您构建模型的方式, Controller 进行一些日志记录可能是合适的。

除了捕获异常,可能写入日志(如果您的模型基础架构不这样做)和显示错误之外,任何其他内容都不属于您的 Controller 。

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

相关文章:

javascript - 将数据从 JavaScript 文件发送到另一个 JavaScript 文件

php - fatal error : Call to a member function prepare() on string

c# - 如何在 ASP NET Core 中发送复选框输入的值而不是 bool 值?

java - 404 - 请求资源不可用 - Spring MVC

powershell - 如何将2个错误输出合并为一个

wpf - CodeSmith Insight与FogBugz BugScout

php - 如何停止 ffmpeg 写入日志命令行字符串

php - jquery bootgrid 中的搜索结果为空

php - 在 php/mysql 中显示 sql 查询进度

asp.net - 在ASP.Net应用程序中实现通用错误处理的简便方法