Heim > Artikel > Backend-Entwicklung > php析构函数疑惑
<?phpclass Test { public $start; public $end; public function __construct() { echo "__construct<br />"; $this->start = microtime(true); } public function test() { echo "in test()<br />"; throw new Exception("error", 500); // 抛出异常 } public function __destruct() { echo "__destruct<br />"; }}$test = new Test();$test->test();
方法里抛出异常后,不会调用析构函数:
try异常后能调用析构函数:
<?phpclass Test { public $start; public $end; public function __construct() { echo "__construct<br />"; $this->start = microtime(true); } public function test() { echo "in test()<br />"; try { // try 异常 throw new Exception("error", 500); // 抛出异常 } catch(Exception $e) { } } public function __destruct() { echo "__destruct<br />"; }}$test = new Test();$test->test();