【发布时间】:2016-08-09 04:25:46
【问题描述】:
我有一个将联系信息保存到数据库的方法。在该方法中,如果成功保存,我想返回 true,如果没有,则返回 false。不过,我正在使用 try catch 块。我可以返回 false 而不是抛出异常吗?它是这样工作的,但我只是想知道这是一种很好的做法,因为它是针对大学作业的。谢谢
在我的 contact_functions.php 页面中:
function saveContactInfo($firstName, $lastName, $email, $subject, $message, $pdoConnection){
//Get timestamp of current time and store it into a variable
//This is so we can keep a record of the time a message was sent.
$messageTime = time();
try{
$query ="INSERT INTO contact_info (firstName, lastName, email, subject, message, messageTime) VALUES (:firstName, :lastName, :email, :subject, :message, :messageTime)";
$statement = $pdoConnection->prepare($query);
//bind our values. they will all be srting parameters.
$statement->bindValue(':firstName', $firstName, PDO::PARAM_STR);
$statement->bindValue(':lastName', $lastName, PDO::PARAM_STR);
$statement->bindValue(':email', $email, PDO::PARAM_STR);
$statement->bindValue(':subject', $subject, PDO::PARAM_STR);
$statement->bindValue(':message', $message, PDO::PARAM_STR);
$statement->bindValue(':messageTime', $messageTime, PDO::PARAM_STR);
$statement->execute();
return true;
}catch(PDOException $e){
//throw new pdoDbException($e);
//return "Error message " . $e->getMessage();
return false;
}
}
然后在我的 contact_handler.php 页面中:
if (saveContactInfo($firstName, $lastName, $email, $subject, $message, $pdoConnection)) {
echo 'Your Message has been sent!!';
} else {
echo 'There was a problem with your message!!';
}
【问题讨论】:
-
如果你问我,这是一个好的做法是一个品味问题,但这绝对是可能的。向用户提供比一般错误更具体的反馈始终是一个好习惯:“解决方案有问题”。
-
具体反馈是给管理员和开发者的,除了一般描述外,用户应该对错误一无所知。所以你可以返回任何你想要的东西。