SEVN
Loading...
Searching...
No Matches
errhand.h
Go to the documentation of this file.
1//
2// Created by mario on 07/11/18.
3//
4
5#ifndef SEVN_REVISED_ERRHAND_H
6#define SEVN_REVISED_ERRHAND_H
7
8
9#ifdef _OPENMP
10#include <omp.h>
11#endif
12
13#include <iostream>
14#include <string>
15#include <exception>
16#include <sevnlog.h>
17
18
19//NB, THis class is now deprecated since all the logging and errors are managed by SevnLogging.
20// we mantain it for now for compatibility but all the all the old call to sevenerr have to be repalced
21//TODO the namespade should be sevnerr
22namespace sevnstd {
23
24class sevnerr : public std::exception {
25
26public:
27
28 explicit sevnerr(std::string s="") {
29 set_mess(s);
30 }
31
32 inline sevnerr istance(std::string& s){
33 return sevnerr(s);
34 }
35
36 const char * what () const throw(){
37 return &mess[0];
38 }
39
40 virtual inline std::string default_mess() const {return "SEVN error: ";}
41
42
43protected:
44
45 void inline set_mess(std::string& s){
47 }
48 std::string mess;
49
50};
51
52
53class sevnio_error : public sevnerr {
54
55 public:
56 explicit sevnio_error(std::string s="") {
57 set_mess(s);
58 }
59 inline sevnio_error istance(std::string& s){
60 return sevnio_error(s);
61 }
62 inline std::string default_mess() const override {return "SEVN IO error: ";}
63};
64
65
66class sse_error : public sevnerr {
67
68 public:
69 explicit sse_error(std::string s="") {
70 set_mess(s);
71 }
72 inline sse_error istance(std::string& s){
73 return sse_error(s);
74 }
75 inline std::string default_mess() const override {return "SSE error: ";}
76 };
77
78
79class bse_error : public sevnerr {
80
81 public:
82 explicit bse_error(std::string s="") {
83 set_mess(s);
84 }
85 inline bse_error istance(std::string& s){
86 return bse_error(s);
87 }
88 inline std::string default_mess() const override {return "BSE error: ";}
89};
90
91
92class rl_error : public bse_error {
93
94 public:
95 explicit rl_error(std::string s="") {
96 set_mess(s);
97 }
98 inline rl_error istance(std::string& s){
99 return rl_error(s);
100 }
101 inline std::string default_mess() const override {return "RocheLobe error: ";}
102};
103
104class ce_error : public bse_error {
105
106public:
107 explicit ce_error(std::string s="") {
108 set_mess(s);
109 }
110
111 inline ce_error istance(std::string& s){
112 return ce_error(s);
113 }
114 inline std::string default_mess() const override {return "CommonEnvelope error: ";}
115};
116
117class sn_error : public sse_error {
118
119public:
120 explicit sn_error(std::string s=""){
121 set_mess(s);
122 }
123
124 inline sn_error istance(std::string& s){
125 return sn_error(s);
126 }
127
128 inline std::string default_mess() const override {return "SN error: ";}
129
130};
131
132class jtrack_error : public sevnerr {
133
134 public:
135 explicit jtrack_error(std::string s="") {
136 set_mess(s);
137 }
138 inline jtrack_error istance(std::string& s){
139 return jtrack_error(s);
140 }
141 inline std::string default_mess() const override { return "Change tracks error: ";}
142};
143
144class params_error : public sevnerr {
145
146public:
147 explicit params_error(std::string s=""){
148 set_mess(s);
149 }
150 inline params_error istance(std::string& s){
151 return params_error(s);
152 }
153 inline std::string default_mess() const override { return "SEVN parameters error: ";}
154};
155
157public:
158 explicit notimplemented_error(std::string s=""){
159 set_mess(s);
160 }
161 inline notimplemented_error istance(std::string& s){
162 return notimplemented_error(s);
163 }
164 inline std::string default_mess() const override { return "SEVN not implemented error: ";}
165};
166
167class sanity_error : public sevnerr {
168public:
169 explicit sanity_error(std::string s=""){
170 set_mess(s);
171 }
172 inline sanity_error istance(std::string& s){
173 return sanity_error(s);
174 }
175 inline std::string default_mess() const override { return "SEVN sanity check error: ";}
176};
177
178
179}
180
181
182//This is an example of how override throw of exception class, maybe at a certain point sevnerr can inerhit from exception
183/*
184class SevnException : public std::exception
185{
186public:
187 const char * what() const throw () override {
188 return "SEVN EXCEPTION";
189 }
190};
191 */
192
193#endif //SEVN_REVISED_ERRHAND_H
Definition: errhand.h:79
bse_error(std::string s="")
Definition: errhand.h:82
std::string default_mess() const override
Definition: errhand.h:88
bse_error istance(std::string &s)
Definition: errhand.h:85
Definition: errhand.h:104
std::string default_mess() const override
Definition: errhand.h:114
ce_error(std::string s="")
Definition: errhand.h:107
ce_error istance(std::string &s)
Definition: errhand.h:111
Definition: errhand.h:132
jtrack_error istance(std::string &s)
Definition: errhand.h:138
std::string default_mess() const override
Definition: errhand.h:141
jtrack_error(std::string s="")
Definition: errhand.h:135
Definition: errhand.h:156
notimplemented_error(std::string s="")
Definition: errhand.h:158
std::string default_mess() const override
Definition: errhand.h:164
notimplemented_error istance(std::string &s)
Definition: errhand.h:161
Definition: errhand.h:144
params_error istance(std::string &s)
Definition: errhand.h:150
params_error(std::string s="")
Definition: errhand.h:147
std::string default_mess() const override
Definition: errhand.h:153
Definition: errhand.h:92
rl_error istance(std::string &s)
Definition: errhand.h:98
std::string default_mess() const override
Definition: errhand.h:101
rl_error(std::string s="")
Definition: errhand.h:95
Definition: errhand.h:167
sanity_error istance(std::string &s)
Definition: errhand.h:172
sanity_error(std::string s="")
Definition: errhand.h:169
std::string default_mess() const override
Definition: errhand.h:175
Definition: errhand.h:24
virtual std::string default_mess() const
Definition: errhand.h:40
void set_mess(std::string &s)
Definition: errhand.h:45
sevnerr istance(std::string &s)
Definition: errhand.h:32
sevnerr(std::string s="")
Definition: errhand.h:28
std::string mess
Definition: errhand.h:48
const char * what() const
Definition: errhand.h:36
Definition: errhand.h:53
sevnio_error istance(std::string &s)
Definition: errhand.h:59
std::string default_mess() const override
Definition: errhand.h:62
sevnio_error(std::string s="")
Definition: errhand.h:56
Definition: errhand.h:117
sn_error(std::string s="")
Definition: errhand.h:120
sn_error istance(std::string &s)
Definition: errhand.h:124
std::string default_mess() const override
Definition: errhand.h:128
Definition: errhand.h:66
std::string default_mess() const override
Definition: errhand.h:75
sse_error istance(std::string &s)
Definition: errhand.h:72
sse_error(std::string s="")
Definition: errhand.h:69
Definition: errhand.h:22