PHP 异常

PHP Exception::getPrevious() 方法返回前一个 Throwable, 返回先前的 Throwable(Error::__construct() 的第三个参数)。

语法

final public Exception::getPrevious() 

参数

不需要参数。

返回值

如果可用,则返回前一个 Throwable,否则返回 null。

示例:Exception::getPrevious() 示例

下面的示例显示 Exception::getPrevious() 方法的用法。

<?php
class MyCustomException extends Exception {}

function doStuff() {
  try {
    throw new InvalidArgumentException("You are doing it wrong!", 112);
  } catch(Exception $e) {
    throw new MyCustomException("Something happened", 911, $e);
  }
}

try {
  doStuff();
} catch(Exception $e) {
  do {
    printf("%s:%d %s (%d) [%s]\n", 
           $e->getFile(), 
           $e->getLine(), 
           $e->getMessage(), 
           $e->getCode(), 
           get_class($e));
  } while($e = $e->getPrevious());
}
?> 

上述代码的输出将是:

Main.php:8 Something happened (911) [MyCustomException]
Main.php:6 You are doing it wrong! (112) [InvalidArgumentException]