use a specific exception when nextTo breaks
[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
20 //! Error loading information
21 class mussa_load_error : public mussa_error
22 {
23 public:
24   explicit mussa_load_error(const std::string& msg) : 
25     mussa_error(msg) {};
26 };
27
28 //! Error loading sequence
29 class sequence_load_error : public mussa_load_error
30 {
31 public:
32   explicit sequence_load_error(const std::string& msg) :
33     mussa_load_error(msg) {};
34 };
35
36 // Empty sequence
37 class sequence_empty_error : public sequence_load_error 
38 {
39 public:
40   explicit sequence_empty_error(const std::string& msg) :
41     sequence_load_error(msg) {};
42 };
43
44 // Empty fasta file
45 class sequence_empty_file_error : public sequence_load_error 
46 {
47 public:
48   explicit sequence_empty_file_error(const std::string& msg) :
49     sequence_load_error(msg) {};
50 };
51
52
53 //! failure running analysis
54 class mussa_analysis_error : public mussa_error
55 {
56 public:
57   explicit mussa_analysis_error(const std::string& msg) : 
58     mussa_error(msg) {};
59 };
60
61 class motif_normalize_error : public mussa_error
62 {
63 public:
64   explicit motif_normalize_error(const std::string& msg) : 
65     mussa_error(msg) {};
66 };
67
68 //! ConservedPath::nextTo had two paths that weren't the same size
69 class conserved_path_size_mismatch : public mussa_error
70 {
71 public:
72   explicit conserved_path_size_mismatch(const std::string& msg) :
73     mussa_error(msg) {};
74 };
75 #endif