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 ?
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
<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
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...
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 ?
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