Eventhandler dat geen exception doorgeeft

Status
Niet open voor verdere reacties.

thoma

Gebruiker
Lid geworden
16 apr 2010
Berichten
15
Hoi,

Stel: In methode B wordt er een exception opgegooid, methode B wordt aangeroepen vanuit een try-block in methode A, deze exceptie wordt dan opgevangen in A en eventueel wordt deze verwerkt.

In mijn programma is methode B een eventhandler dat wordt gekoppeld aan een event, dit gebeurt in een try-block van methode A.
Het probleem hier is dat de exception niet meer wordt doorgegeven, ze gaat gewoon verloren. Hoe kan dit? Op welke manier kan ik dit oplossen?


Thomas
 
Je kunt de Exception opnieuw throw'en. In dit geval zou methode A zo kunnen werken:

Code:
public void A()
        {
            try
            {
                B();
            }
            catch (Exception e)
            {
                throw e;
            }
        }
 
Ik zal hier snel even een voorbeeld zetten:

[CPP]
namespace exception_events
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();

try
{
//method(); //dit wordt wel afgehandeld
button1.Click += eventhandler; //eventhandler niet
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
private void eventhandler(object sender, EventArgs e)
{
throw new Exception("eventhandler exceptie");
}
private void method()
{
throw new Exception("method exception");
}
}
}
[/CPP]

Dus wanneer er een exception wordt opgegooid in de eventhandler kan ik deze niet opvangen in de constructor, dan krijg ik een "unhandled exception" bericht. Bij een gewone methode wordt de exception wel opgevangen op de manier zoals het hoort.

Is er een manier om deze exceptions (van eventhandlers) toch op te vangen?
 
Ik had net iets te weinig geduld en ondertussen heb ik iets gevonden waarmee ik (voorlopig) wel verder kan.

Toch bedankt voor je antwoord.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan