Php 捕获后如何访问异常

Php 捕获后如何访问异常,php,pdo,Php,Pdo,在下面的代码中,“$e”获取“getMessage()”。我知道我可以使用“catch{}”将其打印到屏幕上,或者将内容存储在变量中供以后使用,但是如果我不想这样做呢?我以后如何访问它?我看到有“getPrevious()”,但是我以后如何从另一个函数访问它,或者我可以吗 $servername = "localhost"; $username = "username"; $password = "password"; try { $conn = new PDO("mysql:host=$se

在下面的代码中,“$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{}”之外


我应该回显哪个变量?

可以在$conn变量中找到连接,当try{}块中出现错误时,PHP停止代码执行,然后跳转到catch{}块,这意味着您可以通过在$e->getMessage()中打印错误描述来报告catch块中发生的情况

我不认为在php中捕获或未捕获异常之后,有一个可以访问的错误堆栈。如果未捕获异常,它将停止脚本的执行。但是,看起来您可以在捕获前一个异常作为异常的参数时传入该异常,然后在以后循环遍历所有前一个异常以在事件发生后获取它们。然而,在说了所有这些之后,为什么不将它们存储在一个变量中,并在以后报告它们呢。查看为
getPrevious()
提供的示例,了解如何实现它