mirror of
https://github.com/boostorg/python.git
synced 2026-01-23 17:52:17 +00:00
improved error reporting
[SVN r8400]
This commit is contained in:
@@ -17,12 +17,25 @@ char const * test(Shared const & m)
|
||||
|
||||
extern "C" void initm1()
|
||||
{
|
||||
py::module_builder m1("m1");
|
||||
|
||||
try {
|
||||
py::module_builder m1("m1");
|
||||
|
||||
py::class_builder<M1> m1_class(m1, "M1");
|
||||
m1_class.def(py::constructor<>());
|
||||
m1_class.declare_base(py::type<Shared>());
|
||||
|
||||
m1.def(&test, "test");
|
||||
|
||||
py::class_builder<M1> m1_class(m1, "M1");
|
||||
m1_class.def(py::constructor<>());
|
||||
|
||||
try {
|
||||
m1_class.declare_base(py::type<Shared>());
|
||||
}
|
||||
catch(std::runtime_error & )
|
||||
{
|
||||
throw std::runtime_error("You must load module `shared' before module `m1'");
|
||||
}
|
||||
|
||||
m1.def(&test, "test");
|
||||
}
|
||||
catch(...)
|
||||
{
|
||||
py::handle_exception();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,9 +11,21 @@ namespace py = boost::python;
|
||||
|
||||
extern "C" void initm2()
|
||||
{
|
||||
py::module_builder m2("m2");
|
||||
|
||||
py::class_builder<M2> m2_class(m2, "M2");
|
||||
m2_class.def(py::constructor<>());
|
||||
m2_class.declare_base(py::type<Shared>());
|
||||
try {
|
||||
py::module_builder m2("m2");
|
||||
|
||||
py::class_builder<M2> m2_class(m2, "M2");
|
||||
m2_class.def(py::constructor<>());
|
||||
try {
|
||||
m2_class.declare_base(py::type<Shared>());
|
||||
}
|
||||
catch(std::runtime_error & )
|
||||
{
|
||||
throw std::runtime_error("You must load module `shared' before module `m2'");
|
||||
}
|
||||
}
|
||||
catch(...)
|
||||
{
|
||||
py::handle_exception();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,9 +11,15 @@ char const * test(Shared const & m)
|
||||
|
||||
extern "C" void initshared()
|
||||
{
|
||||
py::module_builder shared("shared");
|
||||
py::class_builder<Shared> shared_class(shared, "Shared");
|
||||
shared_class.def(py::constructor<>());
|
||||
shared_class.def(&Shared::name, "name");
|
||||
shared.def(&test, "test");
|
||||
try {
|
||||
py::module_builder shared("shared");
|
||||
py::class_builder<Shared> shared_class(shared, "Shared");
|
||||
shared_class.def(py::constructor<>());
|
||||
shared_class.def(&Shared::name, "name");
|
||||
shared.def(&test, "test");
|
||||
}
|
||||
catch(...)
|
||||
{
|
||||
py::handle_exception();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
r'''
|
||||
>>> import shared
|
||||
>>> import m2
|
||||
>>> import m1
|
||||
>>> import m2
|
||||
>>> ls = shared.Shared()
|
||||
>>> ls.name()
|
||||
'Shared'
|
||||
|
||||
Reference in New Issue
Block a user