Annotation of embedaddon/php/tests/classes/destructor_and_exceptions.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: ZE2 catch exception thrown in destructor
! 3: --FILE--
! 4: <?php
! 5:
! 6: class FailClass
! 7: {
! 8: public $fatal;
! 9:
! 10: function __destruct()
! 11: {
! 12: echo __METHOD__ . "\n";
! 13: throw new exception("FailClass");
! 14: echo "Done: " . __METHOD__ . "\n";
! 15: }
! 16: }
! 17:
! 18: try
! 19: {
! 20: $a = new FailClass;
! 21: unset($a);
! 22: }
! 23: catch(Exception $e)
! 24: {
! 25: echo "Caught: " . $e->getMessage() . "\n";
! 26: }
! 27:
! 28: class FatalException extends Exception
! 29: {
! 30: function __construct($what)
! 31: {
! 32: echo __METHOD__ . "\n";
! 33: $o = new FailClass;
! 34: unset($o);
! 35: echo "Done: " . __METHOD__ . "\n";
! 36: }
! 37: }
! 38:
! 39: try
! 40: {
! 41: throw new FatalException("Damn");
! 42: }
! 43: catch(Exception $e)
! 44: {
! 45: echo "Caught Exception: " . $e->getMessage() . "\n";
! 46: }
! 47: catch(FatalException $e)
! 48: {
! 49: echo "Caught FatalException: " . $e->getMessage() . "\n";
! 50: }
! 51:
! 52: ?>
! 53: ===DONE===
! 54: --EXPECTF--
! 55: FailClass::__destruct
! 56: Caught: FailClass
! 57: FatalException::__construct
! 58: FailClass::__destruct
! 59: Caught Exception: FailClass
! 60: ===DONE===
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>