diff options
author | Marcus Boerger <helly@php.net> | 2004-09-29 09:36:23 +0000 |
---|---|---|
committer | Marcus Boerger <helly@php.net> | 2004-09-29 09:36:23 +0000 |
commit | 13f3e07ff2e2c36c8c02b4db0fc45337e9e218cb (patch) | |
tree | b5a71643e4c9205f62506ae8b8998b88c91cdbe4 /tests/classes/destructor_and_exceptions.phpt | |
parent | a898c2dd2850dfbb16cf4aa01bcd32f75eaee412 (diff) | |
download | php-git-13f3e07ff2e2c36c8c02b4db0fc45337e9e218cb.tar.gz |
- Add new tests
Diffstat (limited to 'tests/classes/destructor_and_exceptions.phpt')
-rwxr-xr-x | tests/classes/destructor_and_exceptions.phpt | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/tests/classes/destructor_and_exceptions.phpt b/tests/classes/destructor_and_exceptions.phpt new file mode 100755 index 0000000000..8100c92465 --- /dev/null +++ b/tests/classes/destructor_and_exceptions.phpt @@ -0,0 +1,60 @@ +--TEST-- +ZE2 catch exception thrown in destructor +--FILE-- +<?php + +class FailClass +{ + public $fatal; + + function __destruct() + { + echo __METHOD__ . "\n"; + throw new exception("FailClass"); + echo "Done: " . __METHOD__ . "\n"; + } +} + +try +{ + $a = new FailClass; + unset($a); +} +catch(Exception $e) +{ + echo "Caught: " . $e->getMessage() . "\n"; +} + +class FatalException extends Exception +{ + function __construct($what) + { + echo __METHOD__ . "\n"; + $o = new FailClass; + unset($o); + echo "Done: " . __METHOD__ . "\n"; + } +} + +try +{ + throw new FatalException("Damn"); +} +catch(Exception $e) +{ + echo "Caught Exception: " . $e->getMessage() . "\n"; +} +catch(FatalException $e) +{ + echo "Caught FatalException: " . $e->getMessage() . "\n"; +} + +?> +===DONE=== +--EXPECTF-- +FailClass::__destruct +Caught: FailClass +FatalException::__construct +FailClass::__destruct +Caught Exception: FailClass +===DONE=== |