throw errors when spirit parsing fails
[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 //! couldn't normalize a motif
83 /*
84 class motif_normalize_error : public mussa_error
85 {
86 public:
87   explicit motif_normalize_error(const std::string& msg) : 
88     mussa_error(msg) {};
89 };
90 */
91
92 //! something went wrong loading a motif  
93 class motif_load_error : public mussa_load_error
94 {
95 public:
96   explicit motif_load_error(const std::string& msg) :
97     mussa_load_error(msg) {};
98 };
99
100 //! ConservedPath::nextTo had two paths that weren't the same size
101 class conserved_path_size_mismatch : public mussa_error
102 {
103 public:
104   explicit conserved_path_size_mismatch(const std::string& msg) :
105     mussa_error(msg) {};
106 };
107 #endif