cleaning up error reporting
This commit is contained in:
parent
ac7f6806eb
commit
d7c06c75c0
@ -1 +1 @@
|
||||
Subproject commit 914033d2c70831b86e94a25f27e61a94bc7d45c8
|
||||
Subproject commit b6e1e94cfb3d8dffdb1bb92b6102e5fad5fe6093
|
@ -19,11 +19,12 @@ private:
|
||||
public:
|
||||
virtual ~MyException() override = default;
|
||||
MyException() = delete;
|
||||
explicit MyException(const std::string &m) noexcept :err(m.c_str()),err_number(-1){}
|
||||
explicit MyException(const char* sz) noexcept :err(sz),err_number(-1) {}
|
||||
explicit MyException(const std::string& m) noexcept :err(m.c_str()), err_number(-1) {}
|
||||
explicit MyException(const char* sz, int i) noexcept :err(sz), err_number(i) {}
|
||||
explicit MyException(const char* sz, int i, const char*, const char*) noexcept;
|
||||
// usage throw MyException("error", __LINE__, __func__, __FILE__);
|
||||
explicit MyException(const std::string& m, int i, const char* func, const char* file) noexcept : MyException(m.c_str(), i, func, file) {}
|
||||
explicit MyException(int, sqlite3*) noexcept;
|
||||
virtual const char* what() const override {
|
||||
return err.c_str();
|
||||
|
@ -270,28 +270,22 @@ static bool CheckForUtfEnvironment(void) {
|
||||
wxString utfError{ wxT("") };
|
||||
if constexpr (b_WINDOWS) {
|
||||
auto ACP{ GetACP() };
|
||||
// Check that windows thinks this is UTF8
|
||||
utfEnvironment = utfEnvironment && (ACP == 65001);
|
||||
if (!utfEnvironment) {
|
||||
utfError += wxString::Format(wxT("current code page %d—should be 65001☹, "), ACP);
|
||||
}
|
||||
}
|
||||
auto FontEncoding{ wxLocale::GetSystemEncoding() };
|
||||
utfEnvironment = utfEnvironment && (false
|
||||
|| (FontEncoding == wxFONTENCODING_UTF8)
|
||||
|| (FontEncoding == wxFONTENCODING_UTF16BE)
|
||||
|| (FontEncoding == wxFONTENCODING_UTF16LE)
|
||||
|| (FontEncoding == wxFONTENCODING_UTF32BE)
|
||||
|| (FontEncoding == wxFONTENCODING_UTF32LE)
|
||||
|| (FontEncoding == wxFONTENCODING_SYSTEM)
|
||||
);
|
||||
// check that wxWidgets thinks this is UTF8
|
||||
utfEnvironment = utfEnvironment && (FontEncoding == wxFONTENCODING_UTF8);
|
||||
if (!utfEnvironment) {
|
||||
utfError = wxString::Format(wxT("%swxFontEncoding %d—should be %d☹"),
|
||||
utfError,
|
||||
FontEncoding,
|
||||
wxFONTENCODING_UTF8);
|
||||
wxLogMessage(wxT("%s"), utfError);
|
||||
throw MyException(utfError.c_str(), __LINE__, __func__, SrcFilename);
|
||||
}
|
||||
if (!utfEnvironment) { throw MyException(utfError); }
|
||||
}
|
||||
catch (const MyException& e) {
|
||||
errorCode = e.what_num();
|
||||
|
Loading…
Reference in New Issue
Block a user