这段代码工作正常,但是如果出现任何问题我会想要处理exception
,所以我故意在query
中出现语法错误,但没有任何反应。以下是代码
try {
$sql = "INSERT INTO journals (topic, author, ) VALUES ('$topic', '$authors', ')";
echo "1st";
$lecturers_db->query($sql);
echo "second";
} catch(PDOException $e) {
echo $e->getMessage();
echo $msg = "Error!";
}
如果没有明显的语法错误,代码工作正常,但语法错误,没有任何反应,try block
中的所有代码都执行,catch block
中的代码永远不会执行。
我想提出一个exception
,请问我该怎么做呢,谢谢你的帮助。
答案 0 :(得分:8)
一旦初始化pdo对象,请务必将属性 PDO :: ATTR_ERRMODE 设置为 PDO :: ERRMODE_EXCEPTION :
$lecturers_db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
之后,任何失败的查询都会引发异常
答案 1 :(得分:7)
抛出异常。代码中的语法错误!=例外。
<?php
try {
$code = 12;
throw new PDOException('Message', $code );
} catch (PDOException $e) {
}
?>
但是,来自maual:
您不应该从自己的代码中抛出PDOException。请参阅例外情况 有关PHP中的异常的更多信息。
我的建议是抛出一般异常,或编写自己的自定义异常来处理错误。