diff --git a/PhysicsAnalysis/AnalysisCommon/HDF5Utils/util/getTree.cxx b/PhysicsAnalysis/AnalysisCommon/HDF5Utils/util/getTree.cxx index 34dc02661a9d32e678c1db178dd65cbbfb61987b..1b8a468a5a549b897168f1f5eeb97cbd79fb7c15 100644 --- a/PhysicsAnalysis/AnalysisCommon/HDF5Utils/util/getTree.cxx +++ b/PhysicsAnalysis/AnalysisCommon/HDF5Utils/util/getTree.cxx @@ -43,6 +43,9 @@ namespace H5Utils { } std::set<std::string> keys; int n_keys = file->GetListOfKeys()->GetSize(); + if (n_keys == 0) { + throw std::logic_error("no keys found in file"); + } for (int keyn = 0; keyn < n_keys; keyn++) { keys.insert(file->GetListOfKeys()->At(keyn)->GetName()); } diff --git a/PhysicsAnalysis/AnalysisCommon/HDF5Utils/util/ttree2hdf5.cxx b/PhysicsAnalysis/AnalysisCommon/HDF5Utils/util/ttree2hdf5.cxx index 3f7929f5f9402f273085bd3dbdaecca109c3fd2c..0b67ad68836847acae29290b75965a5d958faaa2 100644 --- a/PhysicsAnalysis/AnalysisCommon/HDF5Utils/util/ttree2hdf5.cxx +++ b/PhysicsAnalysis/AnalysisCommon/HDF5Utils/util/ttree2hdf5.cxx @@ -14,7 +14,18 @@ Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration #include <iostream> #include <memory> +int run(int argc, char* argv[]); + int main(int argc, char* argv[]) { + try { + return run(argc, argv); + } catch (std::logic_error& e) { + std::cerr << "ERROR: " << e.what() << ", quitting." << std::endl; + return 1; + } +} + +int run(int argc, char* argv[]) { using namespace H5Utils; AppOpts opts = getTreeCopyOpts(argc, argv);