kerneltest/e32test/cppexceptions/second_excp.cpp
changeset 0 a41df078684a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/kerneltest/e32test/cppexceptions/second_excp.cpp	Mon Oct 19 15:55:17 2009 +0100
@@ -0,0 +1,79 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+#include "second_excp.h"
+
+EXPORT_C int thrower2 (int x) {
+#ifdef __SUPPORT_CPP_EXCEPTIONS__
+  if (x != 0) throw MySecondException(x);
+#else //!__SUPPORT_CPP_EXCEPTIONS__
+  if (x != 0)
+	  return x;
+  else
+#endif //__SUPPORT_CPP_EXCEPTIONS__
+  return -1;
+}
+
+EXPORT_C int thrower3 (int x) {
+#ifdef __SUPPORT_CPP_EXCEPTIONS__
+  if (x != 0) throw MyThirdException(x);
+#else //!__SUPPORT_CPP_EXCEPTIONS__
+  if (x != 0)
+	  return x;
+  else
+#endif //__SUPPORT_CPP_EXCEPTIONS__
+  return -1;
+}
+
+#pragma warning( disable : 4673 )	/* throwing 'class MyFourthException' the following types will not be considered at the catch site */
+
+EXPORT_C int thrower4 (int x) {
+#ifdef __SUPPORT_CPP_EXCEPTIONS__
+  if (x != 0) throw MyFourthException(x);
+#else //!__SUPPORT_CPP_EXCEPTIONS__
+  if (x != 0)
+	  return x;
+  else
+#endif //__SUPPORT_CPP_EXCEPTIONS__
+  return -1;
+}
+
+EXPORT_C int thrower5 (int x) {
+#ifdef __SUPPORT_CPP_EXCEPTIONS__
+  if (x != 0) throw MyFifthException(x);
+#else //!__SUPPORT_CPP_EXCEPTIONS__
+  if (x != 0)
+	  return x;
+  else
+#endif //__SUPPORT_CPP_EXCEPTIONS__
+  return -1;
+}
+
+
+EXPORT_C UncaughtTester::UncaughtTester(TInt & x) : aInt(x){}
+
+EXPORT_C UncaughtTester::~UncaughtTester(){
+#ifdef __SUPPORT_CPP_EXCEPTIONS__
+  if (std::uncaught_exception()) {
+    aInt = 2;
+  } else {
+#endif //__SUPPORT_CPP_EXCEPTIONS__
+    aInt = 1;
+#ifdef __SUPPORT_CPP_EXCEPTIONS__
+  }
+#endif //__SUPPORT_CPP_EXCEPTIONS__
+}
+