[英]Exceptions in database model, how do I handle it?
我正在为一个小型PHP应用程序创建模型。 这将利用PDO与MySQL服务器进行通信。 我了解到,建议的错误模式是引发异常的模式,因为这样可以进行优美的错误处理。 但是我不明白该如何处理这些异常?
从技术上讲,这很容易,但是让我举个例子:
class Model()
{
private $host = "localhost",
$user = "",
$pass = "",
$DBH;
function __construct()
{
try
{
$DBH = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass);
$DBH->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
}
catch(PDOException $e)
{
error_log($e->getMessage());
}
}
}
如果我在控制器中创建了一个对象模型,但失败了,我将无法在控制器中处理它,对吗? 或当我创建该对象时,“新模型”返回false会发生什么?
对不起,我是新手,但我希望能够处理模型中其他函数的任何异常。 我应该怎么做? 我需要能够知道控制器中是否出现问题,并能够在其中执行适当的操作。
如果您还希望控制器也捕获异常,则可以随时在记录后将其重新抛出。
class Model()
{
...
function __construct()
{
try
{
...
}
catch(PDOException $e)
{
error_log($e->getMessage());
throw $e;
}
}
}
完全取决于error_log函数的功能。
您可以返回异常。 您可以在记录错误后简单地死掉(大概是如果您的应用程序无法访问数据库,则无法正常恢复)。 您可以通过throw()返回自定义异常;
这实际上只是您的偏好。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.