2
0
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:
Ullrich Köthe
2000-12-08 00:56:11 +00:00
parent 922525faa0
commit 9374bca9a0
4 changed files with 49 additions and 18 deletions

View File

@@ -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();
}
}

View File

@@ -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();
}
}

View File

@@ -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();
}
}

View File

@@ -1,7 +1,7 @@
r'''
>>> import shared
>>> import m2
>>> import m1
>>> import m2
>>> ls = shared.Shared()
>>> ls.name()
'Shared'