diff --git a/loop/src/frag_db.cc b/loop/src/frag_db.cc index 91369cdd88656caaa654b93069c4b4ee56e2cc6f..e69cf20f6d8930accd32e9a86b7e0c4f6c5fb3a1 100644 --- a/loop/src/frag_db.cc +++ b/loop/src/frag_db.cc @@ -289,10 +289,17 @@ void FragDB::SearchDB(const StemCoordPair& stems, std::vector<FragmentInfo>& fragments, uint extra_bins) { - std::vector<StemPairGeom> stem_pairs = MakeStemPairGeom(stems.first, - stems.second, - frag_size, - extra_bins); + std::vector<StemPairGeom> stem_pairs; + try { + stem_pairs = MakeStemPairGeom(stems.first, stems.second, frag_size, + extra_bins); + } catch (const promod3::Error&) { + // MakeStemPairGeom can fail if distance bin is out of bounds + // -> this is ok here as it simply means that we have no fitting fragments + // in this FragDB + // => silently ignore and keep fragments vector unchanged + return; + } for(std::vector<StemPairGeom>::iterator it = stem_pairs.begin(); it != stem_pairs.end(); ++it){