WhatsThis update
[mussa.git] / mussa_exceptions.hpp
1 #ifndef _MUSSA_EXCEPTIONS_H_
2 #define _MUSSA_EXCEPTIONS_H_
3 #include <stdexcept>
4 #include <boost/filesystem/exception.hpp>
5
6 //! base mussa exception
7 class mussa_error : public std::runtime_error
8 {
9 public:
10   explicit mussa_error(const std::string& msg): std::runtime_error(msg) {};
11 };
12
13 //! Error processing commandline arguments
14 class cmdline_error : public mussa_error
15 {
16 public:
17   explicit cmdline_error(const std::string& msg): mussa_error(msg) {};
18 };
19 //! Error trying to save 
20 class mussa_save_error : public mussa_error
21 {
22 public:
23   explicit mussa_save_error(const std::string& msg) :
24     mussa_error(msg) {};
25 };
26 //! Error loading information
27 class mussa_load_error : public mussa_error
28 {
29 public:
30   explicit mussa_load_error(const std::string& msg) : 
31     mussa_error(msg) {};
32 };
33
34 //! Error loading sequence
35 class sequence_load_error : public mussa_load_error
36 {
37 public:
38   explicit sequence_load_error(const std::string& msg) :
39     mussa_load_error(msg) {};
40 };
41
42 // Empty sequence
43 class sequence_empty_error : public sequence_load_error 
44 {
45 public:
46   explicit sequence_empty_error(const std::string& msg) :
47     sequence_load_error(msg) {};
48 };
49
50 // Empty fasta file
51 class sequence_empty_file_error : public sequence_load_error 
52 {
53 public:
54   explicit sequence_empty_file_error(const std::string& msg) :
55     sequence_load_error(msg) {};
56 };
57
58 // Empty unrecognized characters
59 class sequence_invalid_load_error : public sequence_load_error 
60 {
61 public:
62   explicit sequence_invalid_load_error(const std::string& msg) :
63     sequence_load_error(msg) {};
64 };
65
66 //! Error loading sequence annotation
67 class annotation_load_error : public sequence_load_error
68 {
69 public:
70   explicit annotation_load_error(const std::string& msg) :
71     sequence_load_error(msg) {};
72 };
73
74 //! failure running analysis
75 class mussa_analysis_error : public mussa_error
76 {
77 public:
78   explicit mussa_analysis_error(const std::string& msg) : 
79     mussa_error(msg) {};
80 };
81
82 //! failure running seqcomp
83 class seqcomp_error : public mussa_analysis_error
84 {
85 public:
86   explicit seqcomp_error(const std::string& msg) : 
87     mussa_analysis_error(msg) {};
88 };
89
90 //! couldn't normalize a motif
91 /*
92 class motif_normalize_error : public mussa_error
93 {
94 public:
95   explicit motif_normalize_error(const std::string& msg) : 
96     mussa_error(msg) {};
97 };
98 */
99
100 //! something went wrong loading a motif  
101 class motif_load_error : public mussa_load_error
102 {
103 public:
104   explicit motif_load_error(const std::string& msg) :
105     mussa_load_error(msg) {};
106 };
107
108 //! ConservedPath::nextTo had two paths that weren't the same size
109 class conserved_path_size_mismatch : public mussa_error
110 {
111 public:
112   explicit conserved_path_size_mismatch(const std::string& msg) :
113     mussa_error(msg) {};
114 };
115 #endif