--- Exception.h | 1 + PickView.cc | 11 +++++++---- choose.cc | 7 +++++-- 3 files changed, 13 insertions(+), 6 deletions(-)
diff --git a/Exception.h b/Exception.h index 7b16612..15a145e 100644 --- a/Exception.h +++ b/Exception.h @@ -36,6 +36,7 @@ private: #define APPERR_CORRUPT_PACKAGE 1 #define APPERR_IO_ERROR 2 #define APPERR_LOGIC_ERROR 3 +#define APPERR_WINDOW_ERROR 4 #define TOPLEVEL_CATCH(threadname) \ catch (Exception *e) \ diff --git a/PickView.cc b/PickView.cc index d24866c..2e1beda 100644 --- a/PickView.cc +++ b/PickView.cc @@ -27,6 +27,7 @@ /* For 'source' */ #include "state.h" #include "LogSingleton.h" +#include "Exception.h" using namespace std; @@ -539,8 +540,9 @@ PickView::init(views _mode) HDS_HORZ, 0, 0, 0, 0, GetHWND(), (HMENU) IDC_CHOOSE_LISTHEADER, hinstance, (LPVOID) NULL)) == NULL) - // FIXME: throw an exception - exit (10); + throw new Exception (TOSTRING(__LINE__) " " __FILE__, + "Unable to create list header window", + APPERR_WINDOW_ERROR); // Retrieve the bounding rectangle of the parent window's // client area, and then request size and position values @@ -550,8 +552,9 @@ PickView::init(views _mode) hdl.prc = &rcParent; hdl.pwpos = ℘ if (!SendMessage (listheader, HDM_LAYOUT, 0, (LPARAM) & hdl)) - // FIXME: throw an exception - exit (11); + throw new Exception (TOSTRING(__LINE__) " " __FILE__, + "Unable to get size and position of rectangle", + APPERR_WINDOW_ERROR); // Set the font of the listheader, but don't redraw, because its not shown // yet.This message does not return a value, so we are not checking it as we diff --git a/choose.cc b/choose.cc index c78f55d..32600c8 100644 --- a/choose.cc +++ b/choose.cc @@ -57,6 +57,8 @@ #include "UserSettings.h" +#include "Exception.h" + #include "getopt++/BoolOption.h" static BoolOption UpgradeAlsoOption (false, 'g', "upgrade-also", "also upgrade installed packages"); static BoolOption CleanOrphansOption (false, 'o', "delete-orphans", "remove orphaned packages"); @@ -143,8 +145,9 @@ ChooserPage::createListview () chooser = new PickView (cat); RECT r = getDefaultListViewSize(); if (!chooser->Create(this, WS_CHILD | WS_HSCROLL | WS_VSCROLL | WS_VISIBLE,&r)) - // TODO throw exception - exit (11); + throw new Exception (TOSTRING(__LINE__) " " __FILE__, + "Unable to create chooser list window", + APPERR_WINDOW_ERROR); chooser->init(PickView::views::Category); chooser->Show(SW_SHOW); chooser->setViewMode (!is_new_install || UpgradeAlsoOption || hasManualSelections ? -- 2.15.1