From 879788fe83e4af23102d01171bd36326f2309ba2 Mon Sep 17 00:00:00 2001 From: Thomas Goyne Date: Fri, 12 Dec 2014 08:19:10 -0800 Subject: [PATCH] Eliminate some gratuitous exceptions --- libaegisub/common/charset.cpp | 5 +---- libaegisub/include/libaegisub/charset.h | 3 --- src/audio_player_dsound2.cpp | 11 +++++------ src/charset_detect.cpp | 8 +------- 4 files changed, 7 insertions(+), 20 deletions(-) diff --git a/libaegisub/common/charset.cpp b/libaegisub/common/charset.cpp index 02abfcc24..a4fda80da 100644 --- a/libaegisub/common/charset.cpp +++ b/libaegisub/common/charset.cpp @@ -98,12 +98,9 @@ public: break; default: - throw UnknownCharset("Unknown character set."); + return; } - if (list.empty() && (mInputState == eHighbyte)) - throw UnknownCharset("Unknown character set."); - typedef std::pair const& result; sort(begin(list), end(list), [](result lft, result rgt) { return lft.first > rgt.first; }); } diff --git a/libaegisub/include/libaegisub/charset.h b/libaegisub/include/libaegisub/charset.h index 4851c2f26..153e96758 100644 --- a/libaegisub/include/libaegisub/charset.h +++ b/libaegisub/include/libaegisub/charset.h @@ -26,9 +26,6 @@ namespace agi { /// Character set conversion and detection. namespace charset { -DEFINE_EXCEPTION(CharsetError, agi::Exception); -DEFINE_EXCEPTION(UnknownCharset, CharsetError); - /// List of detected encodings. typedef std::vector> CharsetListDetected; diff --git a/src/audio_player_dsound2.cpp b/src/audio_player_dsound2.cpp index 1f937d34b..dd7bf8680 100644 --- a/src/audio_player_dsound2.cpp +++ b/src/audio_player_dsound2.cpp @@ -124,14 +124,14 @@ struct COMInitialization { } /// @brief Initialise the COM library as single-threaded apartment if isn't already inited by us - void Init() + bool Init() { if (!inited) { - if (FAILED(CoInitialize(nullptr))) - throw std::exception(); - inited = true; + if (SUCCEEDED(CoInitialize(nullptr))) + inited = true; } + return inited; } }; @@ -302,8 +302,7 @@ unsigned int __stdcall DirectSoundPlayer2Thread::ThreadProc(void *parameter) void DirectSoundPlayer2Thread::Run() { COMInitialization COM_library; - try { COM_library.Init(); } - catch (std::exception e) + if (!COM_library.Init()) REPORT_ERROR("Could not initialise COM") // Create DirectSound object diff --git a/src/charset_detect.cpp b/src/charset_detect.cpp index e71ce7ef2..e49f9bb0f 100644 --- a/src/charset_detect.cpp +++ b/src/charset_detect.cpp @@ -49,13 +49,7 @@ namespace CharSetDetect { std::string GetEncoding(agi::fs::path const& filename) { - agi::charset::CharsetListDetected list; - - try { - list = agi::charset::DetectAll(filename); - } catch (const agi::charset::UnknownCharset&) { - // will be set to the full list of charsets below - } + auto list = agi::charset::DetectAll(filename); if (list.size() == 1) { auto charset = list.begin();