У меня есть класс 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
, хороши. Исключения могут быть сложным нарушением ПК или фактом, что БД не работает.
Это зависит от метода обработки ошибок PDO.
PDO::ERRMODE_EXCEPTION
, вам нужен блок try... catchPDO::ERRMODE_SILENT
или PDO::ERRMODE_WARNING
вам нужно всего лишь управлять кодом ошибки,Теперь, рассматривая, где можно управлять ошибкой, я предпочитаю, чтобы в коде вызывающего абонента затухали исключения, таким образом вы можете управлять своим поведением на основе вызывающего (для чего сделано исключение).
Обращаясь на ваш вопрос, если вы используете PDO::ERRMODE_EXCEPTION
вам не нужно управлять как код возврата и само исключение.