From c3829e6e2aa2c9aef8a919cf90e7f40ba1128f57 Mon Sep 17 00:00:00 2001
From: Gabriel Studer <gabriel.studer@unibas.ch>
Date: Thu, 4 Aug 2022 09:54:16 +0200
Subject: [PATCH] More descriptive error in io.LoadSequenceList()

The reason are potentially huge fasta files for which debugging is super
hard when you're just told: something is wrong...
---
 modules/io/src/seq/fasta_io_handler.cc   | 2 +-
 modules/seq/base/src/invalid_sequence.hh | 3 +++
 2 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/modules/io/src/seq/fasta_io_handler.cc b/modules/io/src/seq/fasta_io_handler.cc
index c15f6debb..48e7d474d 100644
--- a/modules/io/src/seq/fasta_io_handler.cc
+++ b/modules/io/src/seq/fasta_io_handler.cc
@@ -111,7 +111,7 @@ void FastaIOHandler::Import(seq::SequenceList& aln,
         aln.AddSequence(seq);          
         seq_count+=1;
       } catch (seq::InvalidSequence& e) {
-        throw e;
+        throw seq::InvalidSequence("Failed for sequence with name " + name + ": " + e.what());
       }
     } else {
       throw IOException("Bad FASTA file: Sequence is empty.");
diff --git a/modules/seq/base/src/invalid_sequence.hh b/modules/seq/base/src/invalid_sequence.hh
index b7162169f..7e1795cfb 100644
--- a/modules/seq/base/src/invalid_sequence.hh
+++ b/modules/seq/base/src/invalid_sequence.hh
@@ -31,6 +31,9 @@ public:
   InvalidSequence()
     : Error("Sequence String contains illegal characters. Must "
                          "be one of [A-Za-z?-].") { }
+
+  InvalidSequence(const String& custom_msg)
+    : Error(custom_msg) {}
 };
 
 class DLLEXPORT InvalidAlignment : public Error {
-- 
GitLab