我有一个Permission
类,其方法类似于以下方法。
public function AddComponentToAccount($component_id,$account_id)
{
$sql = "INSERT INTO component_permissions
(account_id,component_id)
VALUES
(:account_id,:component_id)";
$q = $this->db->prepare($sql);
$q->bindValue(':acount_id',$account_id);
$q->bindValue(':component_name',$component_id);
$q->execute();
}
我的问题是 - 最后一行真的应该是return $q->execute();
吗?以下两个,哪个更好?或者这是主观的吗?
if(!$Permission->AddComponentToAccount($component_id,$account_id)){
...
}
-
try {
$Permission->AddComponentToAccount($component_id,$account_id)
} catch(Exception $e) {
HandleError($e);
}
我已经知道传递给AddComponentToAccount
的变量很好。例外情况可能是复合PK违规,或者DB已关闭。
答案 0 :(得分:2)
这取决于PDO错误处理方法。
PDO::ERRMODE_EXCEPTION
,那么您需要尝试... catch block PDO::ERRMODE_SILENT
或PDO::ERRMODE_WARNING
,则只需管理错误代码现在考虑在哪里管理错误,我更喜欢让异常在调用者代码中冒泡,这样你就可以根据调用者来管理你的行为(这就是为什么做的例外)。
解决您的问题,如果您使用PDO::ERRMODE_EXCEPTION
,则不需要管理 返回代码和异常本身。