summaryrefslogtreecommitdiff
path: root/src/value.cpp
diff options
context:
space:
mode:
authorEmiel Bruijntjes <emiel.bruijntjes@copernica.com>2014-03-06 17:58:39 +0100
committerEmiel Bruijntjes <emiel.bruijntjes@copernica.com>2014-03-06 17:58:39 +0100
commitfecab9b936f5985da254ca42976eeaf8dbcbea1d (patch)
treea1d2bd5fc59c646f89af9ce9de624a3386afe71d /src/value.cpp
parent2bd3471192b1ebd8f3841368db4b0eaa5643bf55 (diff)
changes to documentation, removed empty exception.cpp implementation, fixed exception handling
Diffstat (limited to 'src/value.cpp')
-rw-r--r--src/value.cpp6
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;