From d3c3c18d9e3ca62ad922cb7a41bc9744818d2b3c Mon Sep 17 00:00:00 2001 From: Cyprian Laskowski Date: Wed, 3 Nov 2021 22:25:28 +0100 Subject: [PATCH] Replaced some fatal errors with custom exceptions --- conversion_utils/jos_msds_and_properties.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/conversion_utils/jos_msds_and_properties.py b/conversion_utils/jos_msds_and_properties.py index 9a87a15..5d57611 100644 --- a/conversion_utils/jos_msds_and_properties.py +++ b/conversion_utils/jos_msds_and_properties.py @@ -230,6 +230,9 @@ class Msd: return isinstance(obj, Msd) and self.code == obj.code and self.language == obj.language +class ConverterException(Exception): + pass + class Converter: """Converter between Msd and Properties objects.""" @@ -254,7 +257,7 @@ class Converter: """Convert Msd to Properties (possibly in the other language).""" if (msd.code not in self.specifications.codes_map[msd.language]): - exit('[ERROR] msd {} is unknown'.format(msd.code)) + raise ConverterException('The msd {} is unknown'.format(msd.code)) category_char = msd.code[0].lower() value_chars = msd.code[1:] @@ -270,8 +273,8 @@ class Converter: feature_name = feature.names.get(language) feature_value = value.names.get(language) if (lemma is None and (category_name, index) in [(le[0], le[1]) for le in LEVEL_EXCEPTIONS]): - exit('[ERROR] lemma is None but feature level depends on lemma for category={category}, position={position}'\ - .format(category=category_name, position=index)) + raise ConverterException('The lemma is None but feature level depends on lemma for category={category}, position={position}'\ + .format(category=category_name, position=index)) level_exception_flag = (category_name, feature.position, lemma) in LEVEL_EXCEPTIONS lexeme_level_flag = feature.lexeme_level_flag if not level_exception_flag else not feature.lexeme_level_flag feature_value_list.append((feature, value))