added a test to check how exception handling works with Win32 SEH; corrected copyright

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@31222 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2005-01-03 15:47:57 +00:00
parent 3786ce5ad8
commit f78e4942ec

View File

@@ -1,11 +1,11 @@
/////////////////////////////////////////////////////////////////////////////
// Name: except.cpp
// Purpose: Except wxWidgets sample
// Author: Julian Smart
// Name: samples/except/except.cpp
// Purpose: shows how C++ exceptions can be used in wxWidgets
// Author: Vadim Zeitlin
// Modified by:
// Created: 04/01/98
// Created: 2003-09-17
// RCS-ID: $Id$
// Copyright: (c) Julian Smart
// Copyright: (c) 2003-2005 Vadim Zeitlin
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
@@ -24,6 +24,10 @@
#pragma hdrstop
#endif
#if !wxUSE_EXCEPTIONS
#error "This sample only works with wxUSE_EXCEPTIONS == 1"
#endif // !wxUSE_EXCEPTIONS
// for all others, include the necessary headers (this file is usually all you
// need because it includes almost all "standard" wxWidgets headers)
#ifndef WX_PRECOMP
@@ -107,6 +111,7 @@ public:
// event handlers
void OnThrowInt(wxCommandEvent& event);
void OnThrowObject(wxCommandEvent& event);
void OnCrash(wxCommandEvent& event);
private:
DECLARE_EVENT_TABLE()
@@ -134,6 +139,7 @@ enum
// control ids
Except_ThrowInt = 100,
Except_ThrowObject,
Except_Crash,
// menu items
Except_ThrowString = 200,
@@ -160,6 +166,7 @@ END_EVENT_TABLE()
BEGIN_EVENT_TABLE(MyDialog, wxDialog)
EVT_BUTTON(Except_ThrowInt, MyDialog::OnThrowInt)
EVT_BUTTON(Except_ThrowObject, MyDialog::OnThrowObject)
EVT_BUTTON(Except_Crash, MyDialog::OnCrash)
END_EVENT_TABLE()
// Create a new application object: this macro will allow wxWidgets to create
@@ -311,6 +318,8 @@ MyDialog::MyDialog(wxFrame *parent)
0, wxCENTRE | wxALL, 5);
sizerTop->Add(new wxButton(this, Except_ThrowObject, _T("Throw &object")),
0, wxCENTRE | wxALL, 5);
sizerTop->Add(new wxButton(this, Except_Crash, _T("&Crash")),
0, wxCENTRE | wxALL, 5);
sizerTop->Add(new wxButton(this, wxID_CANCEL, _T("&Cancel")),
0, wxCENTRE | wxALL, 5);
@@ -328,3 +337,9 @@ void MyDialog::OnThrowObject(wxCommandEvent& WXUNUSED(event))
throw MyException(_T("Exception thrown from the dialog"));
}
void MyDialog::OnCrash(wxCommandEvent& WXUNUSED(event))
{
char *p = 0;
strcpy(p, "Let's crash");
}