1 #ifndef _MUSSA_EXCEPTIONS_H_
2 #define _MUSSA_EXCEPTIONS_H_
4 #include <boost/filesystem/exception.hpp>
6 //! base mussa exception
7 class mussa_error : public std::runtime_error
10 explicit mussa_error(const std::string& msg): std::runtime_error(msg) {};
13 //! Error processing commandline arguments
14 class cmdline_error : public mussa_error
17 explicit cmdline_error(const std::string& msg): mussa_error(msg) {};
19 //! Error trying to save
20 class mussa_save_error : public mussa_error
23 explicit mussa_save_error(const std::string& msg) :
26 //! Error loading information
27 class mussa_load_error : public mussa_error
30 explicit mussa_load_error(const std::string& msg) :
34 //! error doing a key lookup in the annotations class
35 class annotations_key_error : public mussa_error {
37 explicit annotations_key_error(const std::string& msg) :
41 //! Error loading sequence
42 class sequence_load_error : public mussa_load_error
45 explicit sequence_load_error(const std::string& msg) :
46 mussa_load_error(msg) {};
50 class sequence_empty_error : public sequence_load_error
53 explicit sequence_empty_error(const std::string& msg) :
54 sequence_load_error(msg) {};
58 class sequence_empty_file_error : public sequence_load_error
61 explicit sequence_empty_file_error(const std::string& msg) :
62 sequence_load_error(msg) {};
65 // Empty unrecognized characters
66 class sequence_invalid_load_error : public sequence_load_error
69 explicit sequence_invalid_load_error(const std::string& msg) :
70 sequence_load_error(msg) {};
73 //! Incomprehensible comparison
74 class sequence_invalid_comparison : public mussa_error
77 explicit sequence_invalid_comparison(const std::string& msg) :
81 //! Invalid strand identifier
82 class sequence_invalid_strand : public mussa_error
85 explicit sequence_invalid_strand(const std::string& msg) :
89 //! Error loading sequence annotation
90 class annotation_load_error : public sequence_load_error
93 explicit annotation_load_error(const std::string& msg) :
94 sequence_load_error(msg) {};
97 //! failure running analysis
98 class mussa_analysis_error : public mussa_error
101 explicit mussa_analysis_error(const std::string& msg) :
105 //! failure running seqcomp
106 class seqcomp_error : public mussa_analysis_error
109 explicit seqcomp_error(const std::string& msg) :
110 mussa_analysis_error(msg) {};
113 //! couldn't normalize a motif
115 class motif_normalize_error : public mussa_error
118 explicit motif_normalize_error(const std::string& msg) :
123 //! something went wrong loading a motif
124 class motif_load_error : public mussa_load_error
127 explicit motif_load_error(const std::string& msg) :
128 mussa_load_error(msg) {};
131 //! ConservedPath::nextTo had two paths that weren't the same size
132 class conserved_path_size_mismatch : public mussa_error
135 explicit conserved_path_size_mismatch(const std::string& msg) :