From 8bab4ad0f6f9f0652460ee616612bb5c6e481a9e Mon Sep 17 00:00:00 2001 From: Maximilian Reininghaus <maximilian.reininghaus@kit.edu> Date: Mon, 24 Jun 2019 17:09:35 +0200 Subject: [PATCH] throw exception if conversion impossible --- Processes/Sibyll/ParticleConversion.h | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/Processes/Sibyll/ParticleConversion.h b/Processes/Sibyll/ParticleConversion.h index 4265441d3..62ccdda99 100644 --- a/Processes/Sibyll/ParticleConversion.h +++ b/Processes/Sibyll/ParticleConversion.h @@ -13,7 +13,7 @@ #include <corsika/particles/ParticleProperties.h> -#include <map> +#include <string> namespace corsika::process::sibyll { @@ -28,7 +28,14 @@ namespace corsika::process::sibyll { } corsika::particles::Code constexpr ConvertFromSibyll(SibyllCode pCode) { - return sibyll2corsika[static_cast<SibyllCodeIntType>(pCode) - minSibyll]; + auto const s = static_cast<SibyllCodeIntType>(pCode); + auto const corsikaCode = sibyll2corsika[s - minSibyll]; + if (corsikaCode == corsika::particles::Code::Unknown) { + throw std::runtime_error(std::string("SIBYLL/CORSIKA conversion of ") + .append(std::to_string(s)) + .append(" impossible")); + } + return corsikaCode; } int constexpr ConvertToSibyllRaw(corsika::particles::Code pCode) { -- GitLab