Browse Source

handle Python exceptions properly in get_context()

rdb 14 năm trước cách đây
mục cha
commit
3c65b5171b
1 tập tin đã thay đổi với 9 bổ sung2 xóa
  1. 9 2
      panda/src/rocket/rocketRegion_ext.I

+ 9 - 2
panda/src/rocket/rocketRegion_ext.I

@@ -31,7 +31,14 @@
 ////////////////////////////////////////////////////////////////////
 PyObject* EXT_CONST_METHOD(RocketRegion,
 get_context) {
-  Rocket::Core::Context* context = _ext_this->get_context();
-  python::object py_context = Rocket::Core::Python::Utilities::MakeObject(context);
+  python::object py_context;
+
+  try {
+    Rocket::Core::Context* context = _ext_this->get_context();
+    py_context = Rocket::Core::Python::Utilities::MakeObject(context);
+  } catch (const python::error_already_set& e) {
+    return NULL;
+  }
+
   return py_context.ptr();
 }