X-Git-Url: http://woldlab.caltech.edu/gitweb/?p=mussa.git;a=blobdiff_plain;f=mussa_exceptions.hpp;h=e85b2d98687e5a50304b09cc654c2f8349f1b0f9;hp=701c5e5d56f3bd96cc073bf4b9fc703d933d69d2;hb=HEAD;hpb=198f7c18fd0b5fa84528e9b28a84269c3a856cc4 diff --git a/mussa_exceptions.hpp b/mussa_exceptions.hpp index 701c5e5..e85b2d9 100644 --- a/mussa_exceptions.hpp +++ b/mussa_exceptions.hpp @@ -1,27 +1,138 @@ #ifndef _MUSSA_EXCEPTIONS_H_ #define _MUSSA_EXCEPTIONS_H_ #include +#include -//! Error processing commandline arguments -class cmdline_error : public std::runtime_error +//! base mussa exception +class mussa_error : public std::runtime_error { public: - explicit cmdline_error(const std::string& msg): std::runtime_error(msg) {}; + explicit mussa_error(const std::string& msg): std::runtime_error(msg) {}; }; +//! Error processing commandline arguments +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 std::runtime_error +class mussa_load_error : public mussa_error { public: explicit mussa_load_error(const std::string& msg) : - std::runtime_error(msg) {}; + 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 std::runtime_error +class mussa_analysis_error : public mussa_error { public: explicit mussa_analysis_error(const std::string& msg) : - std::runtime_error(msg) {}; + 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