]> git.saurik.com Git - wxWidgets.git/commitdiff
added and documented wxApp::OnExceptionInMainLoop()
authorVadim Zeitlin <vadim@wxwidgets.org>
Tue, 30 Mar 2004 20:49:54 +0000 (20:49 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Tue, 30 Mar 2004 20:49:54 +0000 (20:49 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@26505 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

docs/latex/wx/app.tex
include/wx/app.h

index d02fd5a8cb2476b90f0a0b8c27fcaf5a548f80e6..138eba959ca5c35982d8bb9594112ed12dcd5d15 100644 (file)
@@ -320,6 +320,25 @@ Return {\tt true} to continue normal execution or {\tt false} to return
 \helpref{OnInitCmdLine}{wxapponinitcmdline}
 
 
+\membersection{wxApp::OnExceptionInMainLoop}{wxapponexceptioninmainloop}
+
+\func{virtual bool}{OnExceptionInMainLoop}{\void}
+
+This function is called if an unhandled exception occurs inside the main
+application event loop. It can return \true to ignore the exception and to
+continue running the loop or \false to exit the loop and terminate the
+program. In the latter case it can also use C++ \texttt{throw} keyword to
+rethrow the current exception.
+
+The default behaviour of this function is the latter in all ports except under
+Windows where a dialog is shown to the user which allows him to choose between
+the different options. You may override this function in your class to do
+something more appropriate.
+
+Finally note that if the exception is rethrown from here, it can be caught in 
+\helpref{OnUnhandledException}{wxapponunhandledexception}.
+
+
 \membersection{wxApp::OnExit}\label{wxapponexit}
 
 \func{virtual int}{OnExit}{\void}
index f172a41422c536684bf72a25c586736cf6b3ad3a..85ba83f552b1e382f6436d237fc80cd499301b4b 100644 (file)
@@ -117,6 +117,12 @@ public:
     virtual void OnFatalException() { }
 
 #if wxUSE_EXCEPTIONS
+    // function called if an uncaught exception is caught inside the main
+    // event loop: it may return true to continue running the event loop or
+    // false to stop it (in the latter case it may rethrow the exception as
+    // well)
+    virtual bool OnExceptionInMainLoop() { throw; }
+
     // Called when an unhandled C++ exception occurs inside OnRun(): note that
     // the exception type is lost by now, so if you really want to handle the
     // exception you should override OnRun() and put a try/catch around