Velocity Reviews

Velocity Reviews (http://www.velocityreviews.com/forums/index.php)
-   C++ (http://www.velocityreviews.com/forums/f39-c.html)
-   -   unexpected exception (http://www.velocityreviews.com/forums/t291318-unexpected-exception.html)

Teddy 05-25-2005 01:06 AM

unexpected exception
 
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 05-25-2005 02:18 AM

Re: unexpected exception
 
Teddy wrote:
> 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 ?
>


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 05-25-2005 02:49 AM

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 05-25-2005 03:43 AM

Re: unexpected exception
 


Teddy wrote:
> 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 ?


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.



All times are GMT. The time now is 03:55 AM.

Powered by vBulletin®. Copyright ©2000 - 2014, vBulletin Solutions, Inc.
SEO by vBSEO ©2010, Crawlability, Inc.