From 1bd08a121bea302b87ec8e72af8eda66b52bba10 Mon Sep 17 00:00:00 2001 From: Fabian Peller <fabian.peller-konrad@kit.edu> Date: Tue, 7 Mar 2023 09:53:52 +0000 Subject: [PATCH] better exception message in visitors --- .../aron/core/data/visitor/RecursiveVisitor.h | 24 ++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/source/RobotAPI/libraries/aron/core/data/visitor/RecursiveVisitor.h b/source/RobotAPI/libraries/aron/core/data/visitor/RecursiveVisitor.h index 60cb4be0f..b9a817f59 100644 --- a/source/RobotAPI/libraries/aron/core/data/visitor/RecursiveVisitor.h +++ b/source/RobotAPI/libraries/aron/core/data/visitor/RecursiveVisitor.h @@ -57,7 +57,17 @@ namespace armarx::aron::data virtual void visitDouble(Input& element) {}; virtual void visitBool(Input& element) {}; virtual void visitString(Input& element) {}; - virtual void visitUnknown(Input& element) { throw error::AronException(__PRETTY_FUNCTION__, "Unknown type in visitor."); } + virtual void visitUnknown(Input& element) + { + if (!element) + { + throw error::AronException(__PRETTY_FUNCTION__, "Unknown type in visitor. The element was NULL."); + } + else + { + throw error::AronException(__PRETTY_FUNCTION__, "Unknown type in visitor. The element was set but descriptor was undefined."); + } + } virtual ~RecursiveVisitor() = default; }; @@ -108,8 +118,16 @@ namespace armarx::aron::data virtual void visitBool(DataInput& elementData, TypeInput& elementType) {}; virtual void visitString(DataInput& elementData, TypeInput& elementType) {}; virtual void visitAnyObject(DataInput& elementData, TypeInput& elementType) {}; - virtual void visitUnknown(DataInput& elementData, TypeInput& elementType) { - throw error::AronException(__PRETTY_FUNCTION__, "Unknown type in visitor."); + virtual void visitUnknown(DataInput& elementData, TypeInput& elementType) + { + if (!elementData) + { + throw error::AronException(__PRETTY_FUNCTION__, "Unknown type in visitor. The element was NULL."); + } + else + { + throw error::AronException(__PRETTY_FUNCTION__, "Unknown type in visitor. The element was set but descriptor was undefined."); + } } virtual ~RecursiveTypedVisitor() = default; }; -- GitLab