start breaking save out from Mussa::analyze()
[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
59 //! failure running analysis
60 class mussa_analysis_error : public mussa_error
61 {
62 public:
63   explicit mussa_analysis_error(const std::string& msg) : 
64     mussa_error(msg) {};
65 };
66
67 class motif_normalize_error : public mussa_error
68 {
69 public:
70   explicit motif_normalize_error(const std::string& msg) : 
71     mussa_error(msg) {};
72 };
73
74 //! ConservedPath::nextTo had two paths that weren't the same size
75 class conserved_path_size_mismatch : public mussa_error
76 {
77 public:
78   explicit conserved_path_size_mismatch(const std::string& msg) :
79     mussa_error(msg) {};
80 };
81 #endif