Notiz an mich: ‘throw’ ist gut, ‘throw ex’ ist böse

Richtig:

catch (FooException ex)
{
    // mach hier dein Ding
    throw;
}

Falsch:

catch (FooException ex)
{
    // mach hier dein Ding
    throw ex;
}

throw ex ist ein Fehler der von C#-Entwicklern gerne gemacht wird (vor allem von den Programmieren mit Java-Hintergrund), bzw. den man des Öfteren in Beispielen und Foren findet.

Der Unterschied ist, dass bei throw ex im Gegensatz zu throw der StackTrace verloren geht, was eigentlich NIE gewünscht ist.

Tagged , , ,

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: