Itasca C++ Interface
Loading...
Searching...
No Matches
baseexception.h
1#pragma once
2
3#include "istring.h"
4
10class Exception : public std::exception {
11public:
12 template <typename FirstArg, typename... Args>
13 Exception(const IString &s, const FirstArg &fa,Args&&... args) { message_ = fmt::format(convertPercentToBracket((s)), fa, args...); }
14 Exception(const IString &s) : message_(s) { }
15 Exception(IString &&s) : message_(std::move(s)) {}
16 Exception(const Exception &e) : message_(e.message_) { }
17 Exception(Exception &&e) : message_(std::move(e.message_)) { }
18 Exception &operator=(const Exception &e) { message_ = e.message_; return *this; }
19 Exception &operator=(Exception &&e) { message_ = std::move(e.message_); return *this; }
20
22 BASE_EXPORT const char *what() const throw() override { return message_.c_str(); }
23
25 void setMessage(const IString &s) { message_ = s; }
26
27private:
28 string message_;
29};
30
32class QuitException : public Exception {
33 public:
34 BASE_EXPORT QuitException() : Exception("quit") { }
35};
36
39 public:
44 : Exception("Processing interrupted by user."), safe_(safe), state_(state) { }
45
47 BASE_EXPORT bool wasSafe() const { return safe_; }
52 BASE_EXPORT IString state() const { return state_; }
53 private:
54 bool safe_;
55 IString state_;
56};
57
58// EoF
Base exception class for all Itasca code.
Definition baseexception.h:10
BASE_EXPORT const char * what() const override
Returns the contents of the error message as a const char.
Definition baseexception.h:22
void setMessage(const IString &s)
Allows the message carried by the exception to be replaced with a new one.
Definition baseexception.h:25
Definition istring.h:14
Exception thrown when interruption occurs, e.g. user press ESC key.
Definition baseexception.h:38
BASE_EXPORT IString state() const
Definition baseexception.h:52
BASE_EXPORT InterruptException(bool safe, const IString &state=IString())
Definition baseexception.h:43
BASE_EXPORT bool wasSafe() const
returns TRUE if the interrupt was "Safe", in that the model was left in a repeatable and valid state.
Definition baseexception.h:47
Exception thrown when processing is done.
Definition baseexception.h:32
#define BASE_EXPORT
Definition basedef.h:24