以下是我可能的解决方案:
1)使用exit()终止脚本。(问题:影响整个页面的内容加载,而不仅仅是数据库中的数据)
2)在页面中嵌入一个<div>元素,专门用于展示可能出现的异常。
标准方法是什么?
发布于 2012-11-01 05:59:44
选项1)不整洁,因为它提供的用户体验很差
选项2)是首选的。
使用PDO,下面的代码将显示异常并将其与时间戳一起存储。
try {
$dbh = new PDO("mysql:host=$host;dbname=$database", $username, $password);
$dbh->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
$stmt = $dbh->prepare("INSERT INTO table ( column ) values ( value )");
$stmt->execute();
}
catch(PDOException $e) {
echo "I'm sorry I'm afraid you can't do that.". $e->getMessage() ;// Remove or modify after testing
file_put_contents('PDOErrors.txt',date('[Y-m-d H:i:s]'). $e->getMessage()."\r\n", FILE_APPEND);
} 在生产站点上,测试后的echo语句应修改为
echo "I'm sorry I'm afraid you can't do that.";发布于 2012-10-31 22:42:38
对于如何处理数据库中的异常,并没有真正的“标准”方法。这完全取决于具体的用例。例如,如果在第一种情况下无法建立数据库连接,则可能适合重定向到错误页面并立即向站点管理员发送电子邮件通知。另一方面,如果您无法执行单次插入(无论出于何种原因),则更合适的做法可能是通知用户无法完成他们正在尝试的操作,并要求他们重试。
异常本质上是一种让您,而不是您正在使用的编程语言或库来决定在出现问题时如何处理的方式。几乎所有情况下,您都希望记录错误,然后由您决定最合适的响应。
所有这些都是说,处理异常的适当方法是在应用程序中最有意义的方法。
发布于 2012-10-31 22:43:16
你应该在日志文件中记录你的异常,并用它来分析哪里出了问题。但从用户的角度来看,你应该向他们展示友好的语句,比如“对不起,你的请求无法被处理。”
https://stackoverflow.com/questions/13160420
复制相似问题