Connecting Tech Pros Worldwide Forums | Help | Site Map

unexpected exception

Teddy
Guest
 
Posts: n/a
#1: Jul 23 '05
Hello all

According to "Think in C++ Volume2", the code below should run
smoothly:
#include <iostream>
#include <exception>
using namespace std;

class ex {
};

void func() throw(ex) {
throw 10;
}

void my_unexpected() {
cout << "unexpected exception" << endl; // this never shows up on my
VC compilers
exit(0);
}

int main()
{
set_unexpected(my_unexpected);

try {
func();
}
catch(ex) {
cout << "ex caught" << endl;
}

return 0;
}


But on my VC2003 and VC2005 BETA2, there will be a compiling warning
and a runtime error.
VC doesn't support unexpected exception ?
or something else ?


Larry I Smith
Guest
 
Posts: n/a
#2: Jul 23 '05

re: unexpected exception


Teddy wrote:[color=blue]
> Hello all
>
> According to "Think in C++ Volume2", the code below should run
> smoothly:
> #include <iostream>
> #include <exception>
> using namespace std;
>
> class ex {
> };
>
> void func() throw(ex) {
> throw 10;
> }
>
> void my_unexpected() {
> cout << "unexpected exception" << endl; // this never shows up on my
> VC compilers
> exit(0);
> }
>
> int main()
> {
> set_unexpected(my_unexpected);
>
> try {
> func();
> }
> catch(ex) {
> cout << "ex caught" << endl;
> }
>
> return 0;
> }
>
>
> But on my VC2003 and VC2005 BETA2, there will be a compiling warning
> and a runtime error.
> VC doesn't support unexpected exception ?
> or something else ?
>[/color]

The code works fine for me (SuSE Linux Pro v9.2,
g++ v3.3.4). It produces the expected output:

"unexpected exception"

So it must be a VC problem. Try checking
with a VC-specific forum.

Regards,
Larry


--
Anti-spam address, change each 'X' to '.' to reply directly.
Raymond
Guest
 
Posts: n/a
#3: Jul 23 '05

re: unexpected exception


Hello Teddy:

I have compile and run this program using MinGW g++.
The result is "unexpected exception". So g++ support the unexpected
exception.

The following his the Version Information of my compiler.

--------------------------------------------------------
g++ (GCC) 3.4.2 (mingw-special)
Copyright (C) 2004 Free Software Foundation, Inc.
--------------------------------------------------------

Razzer
Guest
 
Posts: n/a
#4: Jul 23 '05

re: unexpected exception




Teddy wrote:[color=blue]
> Hello all
>
> According to "Think in C++ Volume2", the code below should run
> smoothly:
> #include <iostream>
> #include <exception>
> using namespace std;
>
> class ex {
> };
>
> void func() throw(ex) {
> throw 10;
> }
>
> void my_unexpected() {
> cout << "unexpected exception" << endl; // this never shows up on my
> VC compilers
> exit(0);
> }
>
> int main()
> {
> set_unexpected(my_unexpected);
>
> try {
> func();
> }
> catch(ex) {
> cout << "ex caught" << endl;
> }
>
> return 0;
> }
>
>
> But on my VC2003 and VC2005 BETA2, there will be a compiling warning
> and a runtime error.
> VC doesn't support unexpected exception ?
> or something else ?[/color]

The Microsoft compilers ignore the exception specification that you
specified on your function. It is a compiler limitiation, so you will
not get the expected (conforming) results.

Closed Thread