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 //! Error loading sequence annotation
75 class annotation_load_error : public sequence_load_error
78 explicit annotation_load_error(const std::string& msg) :
79 sequence_load_error(msg) {};
82 //! failure running analysis
83 class mussa_analysis_error : public mussa_error
86 explicit mussa_analysis_error(const std::string& msg) :
90 //! failure running seqcomp
91 class seqcomp_error : public mussa_analysis_error
94 explicit seqcomp_error(const std::string& msg) :
95 mussa_analysis_error(msg) {};
98 //! couldn't normalize a motif
100 class motif_normalize_error : public mussa_error
103 explicit motif_normalize_error(const std::string& msg) :
108 //! something went wrong loading a motif
109 class motif_load_error : public mussa_load_error
112 explicit motif_load_error(const std::string& msg) :
113 mussa_load_error(msg) {};
116 //! ConservedPath::nextTo had two paths that weren't the same size
117 class conserved_path_size_mismatch : public mussa_error
120 explicit conserved_path_size_mismatch(const std::string& msg) :