File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / php / tests / classes / destructor_and_exceptions.phpt
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Tue Feb 21 23:48:06 2012 UTC (12 years, 5 months ago) by misho
Branches: php, MAIN
CVS tags: v5_4_3elwix, v5_4_29p0, v5_4_29, v5_4_20p0, v5_4_20, v5_4_17p0, v5_4_17, v5_3_10, HEAD
php

    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>