void add_pdb_radii(Hierarchies hs) { for (unsigned int i = 0; i < hs.size(); ++i) { add_pdb_radii(hs[i]); canonicalize(hs[i]); } IMP_IF_CHECK(USAGE_AND_INTERNAL) { for (unsigned int i = 0; i < hs.size(); ++i) { if (!hs[i].get_is_valid(true)) { IMP_ERROR("Invalid hierarchy produced "); IMP_ERROR_WRITE(IMP::core::show<Hierarchy>(hs[i], IMP_STREAM)); throw InternalException("Bad hierarchy"); // should clean up } } } }
void handle_error(const char *msg) { static bool is_handling=false; if (is_handling) { return; } is_handling=true; for (int i=internal::handlers.size()-1; i >=0; --i) { IMP_CHECK_OBJECT(internal::handlers[i]); try { internal::handlers[i]->handle_failure(); } catch (const Exception &e) { IMP_WARN("Caught exception in failure handler \"" << internal::handlers[i]->get_name() << "\": " << e.what() << std::endl); } } if (internal::print_exceptions) { IMP_ERROR(msg); } is_handling=false; }