这是我目前使用的功能:
function pdo_connect(){
try {
$pdo = new PDO('mysql:host=localhost;dbname='.DB_NAME, DB_USER, DB_PASS);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo->setAttribute( PDO::ATTR_EMULATE_PREPARES, false );
$pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
} catch (PDOException $e) {
die("Error!: " . $e->getMessage() . "<br/>");
}
return $pdo;
}
但请考虑我使用此
$pdo->setAttribute( INVALID_SYNTAX, false );
我不希望看到致命的错误:
致命错误:未定义的类常量'INVALID_SYNTAX' 第12行的C:\ xampp \ htdocs \ test.php
我想抓住异常,那么如何做到?/
答案 0 :(得分:2)
未定义的常量错误不是例外,而是编译错误。这就像语法错误一样,这是代码中需要修复的根本错误。在运行时捕获它是没有意义的。它实际上也不可能。
常量INVALID_SYNTAX
也永远不会触发“未定义的类常量”错误,只会出现“普通”未定义的常量错误。
在运行时期间可以处理异常错误的例外情况。异常错误是在正常执行期间不应发生的错误,但您已做好准备以防万一。左右 错误的常量总是会导致错误,并且始终是相同的错误。这不是特殊,它只是错误的代码。因此,想要在运行时动态处理它是没有意义的。
答案 1 :(得分:1)
实际上,在开发阶段错误中有没有意义。
只有在开发阶段才能定义常量。并没有使用它 - 开发人员只需要定义它并继续前进。
异常是PHP中最容易被误解的机制之一。虽然实际上只有在可以处理可恢复错误的情况下才能使用它们,但PHP用户会以适当的方式利用它:用于错误报告,数据验证或作为错误抑制操作符。