diff options
author | Emiel Bruijntjes <emiel.bruijntjes@copernica.com> | 2014-03-06 17:58:39 +0100 |
---|---|---|
committer | Emiel Bruijntjes <emiel.bruijntjes@copernica.com> | 2014-03-06 17:58:39 +0100 |
commit | fecab9b936f5985da254ca42976eeaf8dbcbea1d (patch) | |
tree | a1d2bd5fc59c646f89af9ce9de624a3386afe71d /src/value.cpp | |
parent | 2bd3471192b1ebd8f3841368db4b0eaa5643bf55 (diff) |
changes to documentation, removed empty exception.cpp implementation, fixed exception handling
Diffstat (limited to 'src/value.cpp')
-rw-r--r-- | src/value.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/value.cpp b/src/value.cpp index 0cf1653..53d8c0a 100644 --- a/src/value.cpp +++ b/src/value.cpp @@ -1154,12 +1154,12 @@ Value Value::exec(int argc, zval ***params) const // the current exception zval *oldException = EG(exception); - + // call the function if (call_user_function_ex(CG(function_table), NULL, _val, &retval, argc, params, 1, NULL) != SUCCESS) return nullptr; - // was an exception thrown? - if (oldException != EG(exception)) throw OrigException(EG(exception)); + // was an exception thrown? we throw a C++ new exception to give the C++ the chance to catch it + if (oldException != EG(exception) && EG(exception)) throw OrigException(EG(exception)); // no (additional) exception was thrown return retval ? Value(retval) : nullptr; |