diff options
author | John Ankarström <john@ankarstrom.se> | 2022-09-03 15:28:56 +0200 |
---|---|---|
committer | John Ankarström <john@ankarstrom.se> | 2022-09-03 15:28:56 +0200 |
commit | 6ae7e24675cff4ff6b808c3024f45083f35ced97 (patch) | |
tree | 2a47273f325d8367db2a8669691273f02ca83eb9 /c/err.h | |
parent | 2cd22c671c67deaf2c1fcb659e3262bf57552557 (diff) | |
download | EpisodeBrowser-6ae7e24675cff4ff6b808c3024f45083f35ced97.tar.gz |
Improve error handling.
Diffstat (limited to 'c/err.h')
-rw-r--r-- | c/err.h | 25 |
1 files changed, 25 insertions, 0 deletions
@@ -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 |