X-Git-Url: http://woldlab.caltech.edu/gitweb/?p=mussa.git;a=blobdiff_plain;f=mussa_exceptions.hpp;h=9027a079a3b709552cec72272d50834d81476a94;hp=53c167c40147677ba80612927d3609f262411646;hb=4c1d1e263deea85ab00823282c5ca5fc00fa8c26;hpb=ff8d018ab5570a5744e2704a90d48acf3349c501 diff --git a/mussa_exceptions.hpp b/mussa_exceptions.hpp index 53c167c..9027a07 100644 --- a/mussa_exceptions.hpp +++ b/mussa_exceptions.hpp @@ -1,34 +1,115 @@ #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) {}; +}; + +//! 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) {}; }; -class motif_normalize_error : public std::runtime_error +//! couldn't normalize a motif +/* +class motif_normalize_error : public mussa_error { public: explicit motif_normalize_error(const std::string& msg) : - std::runtime_error(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