Пример #1
0
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
      }
    }
  }
}
Пример #2
0
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;
}