Fix bug #47143, bug #51458 - provide more useful info in bad exception cases

This commit is contained in:
Stanislav Malyshev 2011-01-16 21:24:43 +00:00
parent 3a3f369678
commit ff4982784a
3 changed files with 11 additions and 1 deletions

3
NEWS
View file

@ -9,6 +9,9 @@
in method. (Scott)
. Added options to debug backtrace functions. (Stas)
. Fixed Bug #53629 (memory leak inside highlight_string()). (Hannes, Ilia)
. Fixed Bug #51458 (Lack of error context with nested exceptions). (Stas)
. Fixed Bug #47143 (Throwing an exception in a destructor causes a fatal error).
(Stas)
- Core:
. Fixed bug #48484 (array_product() always returns 0 for an empty array).

View file

@ -20,4 +20,8 @@ echo "Done\n";
--EXPECTF--
string(12) "test thrown!"
Fatal error: Exception thrown without a stack frame in Unknown on line 0
Fatal error: Uncaught exception 'Exception' in %sexception_handler_002.php:7
Stack trace:
#0 [internal function]: foo(Object(test))
#1 {main}
thrown in %sexception_handler_002.php on line %d

View file

@ -91,6 +91,9 @@ void zend_throw_exception_internal(zval *exception TSRMLS_DC) /* {{{ */
}
}
if (!EG(current_execute_data)) {
if(EG(exception)) {
zend_exception_error(EG(exception), E_ERROR TSRMLS_CC);
}
zend_error(E_ERROR, "Exception thrown without a stack frame");
}