<?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();