Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Nice exceptions.

30 views
Skip to first unread message

craigke...@hotmail.com

unread,
Sep 21, 2006, 3:18:38 PM9/21/06
to
I'm new to VS2005, I used VS2003 a bit, and I remember it didn't act
like this.

My code looks like :

try
{
blah
blah
blah
}
catch (Exception)
{
MyOwnException myoe = new MyOwnException ("Error on receiving data");
throw myoe;
}

And what I get when an error happens is a window telling me :
"Application1 has encountered a problem and needs to close.
Send Error Report Don't Send"

Then after clicking either "Send" or "Not Send", the windows closes and
the program vanishes.

As far as I remember I'm catching the exception and the program should
be keep working after that.

Where's my fault ?

Tom Shelton

unread,
Sep 21, 2006, 3:30:04 PM9/21/06
to

You throw an exception from you catch block - where is that being
caught? In other words, it appears that the MyOwnException is not
beign caught.

--
Tom Shelton

Jon Skeet [C# MVP]

unread,
Sep 21, 2006, 3:31:14 PM9/21/06
to
<craigke...@hotmail.com> wrote:
> I'm new to VS2005, I used VS2003 a bit, and I remember it didn't act
> like this.
>
> My code looks like :

<snip>

> As far as I remember I'm catching the exception and the program should
> be keep working after that.
>
> Where's my fault ?

Well, you're throwing another exception after you've caught the
original one...

--
Jon Skeet - <sk...@pobox.com>
http://www.pobox.com/~skeet Blog: http://www.msmvps.com/jon.skeet
If replying to the group, please do not mail me too

sloan

unread,
Sep 21, 2006, 4:28:02 PM9/21/06
to

I usually create a class, called

EntryPoint.cs


[STAThread]
static void Main(string[] args)
{
try
{

Application.Run(new Form1()); //Whatever your startup form is

}

}
catch (Exception ex)
{
//Notify User
MessageBox.Show( "A (uncaught) exception has occured. MyApp
cannot continue." );
//Shut down application
Application.Exit( );
}
}


This will catch any uncaught exceptions.

But Jon is right.
You catch an general exception, but you're rethrowing it.
Thus something else must catch it, or you'll get the blow-up screen.


You should should google

try catch finally brad abrams

and you can read where

"You should be writing many many more

try/finally
blocks

and not so many
try/catch/finally

blocks.

<craigke...@hotmail.com> wrote in message
news:1158866316.7...@e3g2000cwe.googlegroups.com...

craigke...@hotmail.com

unread,
Sep 21, 2006, 4:54:00 PM9/21/06
to

My complain is not why it is thrown, but why the application closes...
and I figured out why, but yet need to know how to workaround it.

The problem was this: it was on an thread.
If I run the same code without threading, the error is shown in a nicer
box with "Stop" and "Continue" buttons. Then the application doesn't
close on the error.

Now, the question, is it normal with a threaded application that a
thrown exception put the application down ?

Doug Forster

unread,
Sep 21, 2006, 9:17:28 PM9/21/06
to
> Now, the question, is it normal with a threaded application that a
> thrown exception put the application down ?

As of .NET 2 that is indeed the normal behaviour.
.NET 1 behaviour was to silently terminate the thread

You need to handle the exception in the thread

Cheers
Doug Forster


craigke...@hotmail.com

unread,
Sep 21, 2006, 9:36:00 PM9/21/06
to
Ok, good to know, thanks a lot !
0 new messages