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 loading sequence
35 class sequence_load_error : public mussa_load_error
38 explicit sequence_load_error(const std::string& msg) :
39 mussa_load_error(msg) {};
43 class sequence_empty_error : public sequence_load_error
46 explicit sequence_empty_error(const std::string& msg) :
47 sequence_load_error(msg) {};
51 class sequence_empty_file_error : public sequence_load_error
54 explicit sequence_empty_file_error(const std::string& msg) :
55 sequence_load_error(msg) {};
58 // Empty unrecognized characters
59 class sequence_invalid_load_error : public sequence_load_error
62 explicit sequence_invalid_load_error(const std::string& msg) :
63 sequence_load_error(msg) {};
66 //! Incomprehensible comparison
67 class sequence_invalid_comparison : public mussa_error
70 explicit sequence_invalid_comparison(const std::string& msg) :
74 //! Invalid strand identifier
75 class sequence_invalid_strand : public mussa_error
78 explicit sequence_invalid_strand(const std::string& msg) :
82 //! Error loading sequence annotation
83 class annotation_load_error : public sequence_load_error
86 explicit annotation_load_error(const std::string& msg) :
87 sequence_load_error(msg) {};
90 //! failure running analysis
91 class mussa_analysis_error : public mussa_error
94 explicit mussa_analysis_error(const std::string& msg) :
98 //! failure running seqcomp
99 class seqcomp_error : public mussa_analysis_error
102 explicit seqcomp_error(const std::string& msg) :
103 mussa_analysis_error(msg) {};
106 //! couldn't normalize a motif
108 class motif_normalize_error : public mussa_error
111 explicit motif_normalize_error(const std::string& msg) :
116 //! something went wrong loading a motif
117 class motif_load_error : public mussa_load_error
120 explicit motif_load_error(const std::string& msg) :
121 mussa_load_error(msg) {};
124 //! ConservedPath::nextTo had two paths that weren't the same size
125 class conserved_path_size_mismatch : public mussa_error
128 explicit conserved_path_size_mismatch(const std::string& msg) :