Store Sequence sequence location in a shared_ptr class
[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 //! Incomprehensible comparison
67 class sequence_invalid_comparison : public mussa_error
68 {
69 public:
70   explicit sequence_invalid_comparison(const std::string& msg) :
71     mussa_error(msg) {};
72 };
73
74 //! Error loading sequence annotation
75 class annotation_load_error : public sequence_load_error
76 {
77 public:
78   explicit annotation_load_error(const std::string& msg) :
79     sequence_load_error(msg) {};
80 };
81
82 //! failure running analysis
83 class mussa_analysis_error : public mussa_error
84 {
85 public:
86   explicit mussa_analysis_error(const std::string& msg) : 
87     mussa_error(msg) {};
88 };
89
90 //! failure running seqcomp
91 class seqcomp_error : public mussa_analysis_error
92 {
93 public:
94   explicit seqcomp_error(const std::string& msg) : 
95     mussa_analysis_error(msg) {};
96 };
97
98 //! couldn't normalize a motif
99 /*
100 class motif_normalize_error : public mussa_error
101 {
102 public:
103   explicit motif_normalize_error(const std::string& msg) : 
104     mussa_error(msg) {};
105 };
106 */
107
108 //! something went wrong loading a motif  
109 class motif_load_error : public mussa_load_error
110 {
111 public:
112   explicit motif_load_error(const std::string& msg) :
113     mussa_load_error(msg) {};
114 };
115
116 //! ConservedPath::nextTo had two paths that weren't the same size
117 class conserved_path_size_mismatch : public mussa_error
118 {
119 public:
120   explicit conserved_path_size_mismatch(const std::string& msg) :
121     mussa_error(msg) {};
122 };
123 #endif