瀏覽代碼

handle Python exceptions properly in get_context()

rdb 14 年之前
父節點
當前提交
3c65b5171b
共有 1 個文件被更改,包括 9 次插入2 次删除
  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,
 PyObject* EXT_CONST_METHOD(RocketRegion,
 get_context) {
 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();
   return py_context.ptr();
 }
 }