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 //! Error loading sequence annotation
67 class annotation_load_error : public sequence_load_error
70 explicit annotation_load_error(const std::string& msg) :
71 sequence_load_error(msg) {};
74 //! failure running analysis
75 class mussa_analysis_error : public mussa_error
78 explicit mussa_analysis_error(const std::string& msg) :
82 //! failure running seqcomp
83 class seqcomp_error : public mussa_analysis_error
86 explicit seqcomp_error(const std::string& msg) :
87 mussa_analysis_error(msg) {};
90 //! couldn't normalize a motif
92 class motif_normalize_error : public mussa_error
95 explicit motif_normalize_error(const std::string& msg) :
100 //! something went wrong loading a motif
101 class motif_load_error : public mussa_load_error
104 explicit motif_load_error(const std::string& msg) :
105 mussa_load_error(msg) {};
108 //! ConservedPath::nextTo had two paths that weren't the same size
109 class conserved_path_size_mismatch : public mussa_error
112 explicit conserved_path_size_mismatch(const std::string& msg) :