X-Git-Url: http://woldlab.caltech.edu/gitweb/?p=mussa.git;a=blobdiff_plain;f=mussa_exceptions.hpp;h=3c44e6061705d1c370d4158eb8aa70791e6fd23f;hp=701c5e5d56f3bd96cc073bf4b9fc703d933d69d2;hb=7d4fbcb6060a60a8ea25ca1303fcaaaf8574f24a;hpb=198f7c18fd0b5fa84528e9b28a84269c3a856cc4 diff --git a/mussa_exceptions.hpp b/mussa_exceptions.hpp index 701c5e5..3c44e60 100644 --- a/mussa_exceptions.hpp +++ b/mussa_exceptions.hpp @@ -1,27 +1,123 @@ #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 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) {}; +}; + +//! 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