MPQC
3.0.0-alpha
exception.hpp
1
#ifndef MPQC_UTILITY_EXCEPTION_HPP
2
#define MPQC_UTILITY_EXCEPTION_HPP
3
4
#include <stdio.h>
5
#include <stdarg.h>
6
7
#include <string>
8
#include <exception>
9
#include <iostream>
10
#include <sstream>
11
12
#include "mpqc/utility/string.hpp"
13
14
namespace
mpqc
{
15
18
20
struct
Exception
: std::exception {
22
explicit
Exception
(
const
std::string &msg =
""
)
23
: what_(msg) {}
25
explicit
Exception
(
char
const
*file,
long
line,
const
char
*fmt = NULL, ...) {
26
what_ = what_ + file +
":"
+
string_cast
(line);
27
if
(fmt) {
28
char
buffer[1024] = { };
29
va_list args;
30
va_start(args, fmt);
31
vsnprintf(buffer, 1024-1, fmt, args);
32
va_end(args);
33
what_ = what_ +
": "
+ buffer;
34
}
35
}
36
~
Exception
() noexcept {}
37
const
char
* what() const noexcept {
38
return
what_.c_str();
39
}
40
private
:
41
std::string what_;
42
};
43
45
46
}
47
51
#define MPQC_EXCEPTION(...) mpqc::Exception(__FILE__, __LINE__, __VA_ARGS__)
52
53
#endif
/* MPQC_UTILITY_EXCEPTION_HPP */
mpqc::Exception
MPQC exception class.
Definition:
exception.hpp:20
mpqc
Contains new MPQC code since version 3.
Definition:
integralenginepool.hpp:37
mpqc::Exception::Exception
Exception(const std::string &msg="")
Constructs exception.
Definition:
exception.hpp:22
mpqc::string_cast
std::string string_cast(const T &value)
cast type T to string
Definition:
string.hpp:14
mpqc::Exception::Exception
Exception(char const *file, long line, const char *fmt=NULL,...)
Constructs exception with an optional printf-style format and arguments.
Definition:
exception.hpp:25
Generated at Sun Jan 26 2020 23:24:01 for
MPQC
3.0.0-alpha using the documentation package
Doxygen
1.8.16.