X-Git-Url: http://woldlab.caltech.edu/gitweb/?p=mussa.git;a=blobdiff_plain;f=mussa_exceptions.hpp;h=e85b2d98687e5a50304b09cc654c2f8349f1b0f9;hp=bf76e3b946eb0b166bfc4ec1a0175f3c2dd4300c;hb=HEAD;hpb=5af8b13c0f60d0929ab9af8c4208ab3e1fb4fdd2 diff --git a/mussa_exceptions.hpp b/mussa_exceptions.hpp index bf76e3b..e85b2d9 100644 --- a/mussa_exceptions.hpp +++ b/mussa_exceptions.hpp @@ -1,6 +1,7 @@ #ifndef _MUSSA_EXCEPTIONS_H_ #define _MUSSA_EXCEPTIONS_H_ #include +#include //! base mussa exception class mussa_error : public std::runtime_error @@ -15,7 +16,13 @@ class cmdline_error : public mussa_error public: explicit cmdline_error(const std::string& msg): mussa_error(msg) {}; }; - +//! Error trying to save +class mussa_save_error : public mussa_error +{ +public: + explicit mussa_save_error(const std::string& msg) : + mussa_error(msg) {}; +}; //! Error loading information class mussa_load_error : public mussa_error { @@ -24,6 +31,69 @@ public: mussa_error(msg) {}; }; +//! error doing a key lookup in the annotations class +class annotations_key_error : public mussa_error { +public: + explicit annotations_key_error(const std::string& msg) : + mussa_error(msg) {}; +}; + +//! Error loading sequence +class sequence_load_error : public mussa_load_error +{ +public: + explicit sequence_load_error(const std::string& msg) : + mussa_load_error(msg) {}; +}; + +// Empty sequence +class sequence_empty_error : public sequence_load_error +{ +public: + explicit sequence_empty_error(const std::string& msg) : + sequence_load_error(msg) {}; +}; + +// Empty fasta file +class sequence_empty_file_error : public sequence_load_error +{ +public: + explicit sequence_empty_file_error(const std::string& msg) : + sequence_load_error(msg) {}; +}; + +// Empty unrecognized characters +class sequence_invalid_load_error : public sequence_load_error +{ +public: + explicit sequence_invalid_load_error(const std::string& msg) : + sequence_load_error(msg) {}; +}; + +//! Incomprehensible comparison +class sequence_invalid_comparison : public mussa_error +{ +public: + explicit sequence_invalid_comparison(const std::string& msg) : + mussa_error(msg) {}; +}; + +//! Invalid strand identifier +class sequence_invalid_strand : public mussa_error +{ +public: + explicit sequence_invalid_strand(const std::string& msg) : + mussa_error(msg) {}; +}; + +//! Error loading sequence annotation +class annotation_load_error : public sequence_load_error +{ +public: + explicit annotation_load_error(const std::string& msg) : + sequence_load_error(msg) {}; +}; + //! failure running analysis class mussa_analysis_error : public mussa_error { @@ -32,10 +102,37 @@ public: mussa_error(msg) {}; }; +//! failure running seqcomp +class seqcomp_error : public mussa_analysis_error +{ +public: + explicit seqcomp_error(const std::string& msg) : + mussa_analysis_error(msg) {}; +}; + +//! couldn't normalize a motif +/* class motif_normalize_error : public mussa_error { public: explicit motif_normalize_error(const std::string& msg) : mussa_error(msg) {}; }; +*/ + +//! something went wrong loading a motif +class motif_load_error : public mussa_load_error +{ +public: + explicit motif_load_error(const std::string& msg) : + mussa_load_error(msg) {}; +}; + +//! ConservedPath::nextTo had two paths that weren't the same size +class conserved_path_size_mismatch : public mussa_error +{ +public: + explicit conserved_path_size_mismatch(const std::string& msg) : + mussa_error(msg) {}; +}; #endif