aboutsummaryrefslogtreecommitdiff
path: root/c/err.h
diff options
context:
space:
mode:
Diffstat (limited to 'c/err.h')
-rw-r--r--c/err.h25
1 files changed, 25 insertions, 0 deletions
diff --git a/c/err.h b/c/err.h
new file mode 100644
index 0000000..d4a9976
--- /dev/null
+++ b/c/err.h
@@ -0,0 +1,25 @@
+#ifndef ERR_H
+#define ERR_H
+
+#include <exception>
+#include <string>
+
+enum ErrType : unsigned char
+{
+ GENERIC,
+ WINDOWS,
+ WININET,
+ LIBXML2
+};
+
+struct Err
+{
+ std::wstring what;
+ Err(ErrType t, const wchar_t* fmt = L"%s");
+ inline Err(ErrType t, std::wstring fmt) : Err(t, fmt.c_str()) {}
+};
+
+/* Return a wide string describing exception. */
+std::wstring What(std::exception_ptr e = std::current_exception());
+
+#endif