在以下代码中,“$ e”获取“getMessage()”。我知道我可以使用“catch {}”将其打印到屏幕上或将内容存储在变量中供以后使用,但是如果我不想这样做呢?我以后如何访问它?我看到有“getPrevious()”,但是如何在以后从其他函数访问它,或者我可以吗?:
$servername = "localhost";
$username = "username";
$password = "password";
try {
$conn = new PDO("mysql:host=$servername;dbname=myDB", $username, $password);
// set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "Connected successfully";
}
catch(PDOException $e)
{
echo "Connection failed: " . $e->getMessage();
}
我尝试了以下内容以查看是否可以访问该信息,但我无法正确理解语法?:
function ShowLater(){
// Cant figure out how to access the info :(
echo PDO::PDOExeption,$e->getMessage();
echo PDO::PDOExeption,$e->getPrevious();
}
ShowLater();
基本上,我如何访问
中显示的内容echo "Connection failed: " . $e->getMessage();
稍后在“catch {}”之外
我会回应什么变量?
答案 0 :(得分:0)
连接可以在$ conn变量中找到,当try {}块中出现错误然后跳转到catch {}块时,PHP会停止代码执行,这意味着您可以报告catch块中发生的事情通过在$ e-> getMessage()
中打印错误描述答案 1 :(得分:0)
我不相信在事件被捕获或未在php中捕获之后可以访问错误堆栈。如果您没有捕获异常,它将停止执行脚本。但是,看起来你可以传入一个先前的异常,一旦作为异常的参数被捕获,然后循环遍历所有先前的异常以在事后得到它们。然而,在说了所有这些之后,为什么不将它们存储在变量中并稍后报告它们。请查看为getPrevious()
here提供的示例,以获取有关如何实现它的帮助。