Home All Groups Group Topic Archive Search About
Author
21 Sep 2006 7:18 PM
craigkenisston
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 ?

Author
21 Sep 2006 7:30 PM
Tom Shelton
craigkeniss***@hotmail.com wrote:
Show quoteHide quote
> 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 ?

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
Are all your drivers up to date? click for free checkup

Author
21 Sep 2006 7:31 PM
Jon Skeet [C# MVP]
<craigkeniss***@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
Author
21 Sep 2006 8:28 PM
sloan
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.





<craigkeniss***@hotmail.com> wrote in message
Show quoteHide quote
news:1158866316.744452.190120@e3g2000cwe.googlegroups.com...
> 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 ?
>
Author
21 Sep 2006 8:54 PM
craigkenisston
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 ?




sloan wrote:
Show quoteHide quote
> 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.
>
>
>
>
>
> <craigkeniss***@hotmail.com> wrote in message
> news:1158866316.744452.190120@e3g2000cwe.googlegroups.com...
> > 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 ?
> >
Author
22 Sep 2006 1:17 AM
Doug Forster
> 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
Author
22 Sep 2006 1:36 AM
craigkenisston
Ok, good to know, thanks a lot !



Doug Forster wrote:
Show quoteHide quote
> > 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

Bookmark and Share