Hej, använd helt enkelt bara Hej Ola, han menar alltså att du skall använda Aha! Sorry Ola. Och tack båda. Fungerade ju precis som jag ville. Fråga om exception-hantering
Jag skulle vilja kunna fånga ett exception (utan att veta vilken typ), göra något med det och sedan bubbla det vidare uppåt (och här kommer problemet) med bibehållen stack trace. Dylik kod fungerar alltså inte då stack trace börjar om från raden med 'throw ex;'.
void Foobar()
{
try
{
SomeRoutineThatDownTheLineThrowsAnException();
}
catch (Exception ex)
{
DoSomthingWithAnException(ex);
throw ex;
}
}
Och, om jag gör på följande sätt tappar jag typen av exception som jag kanske behöver högre upp anropshierarkien:
void Foobar()
{
try
{
SomeRoutineThatDownTheLineThrowsAnException();
}
catch (Exception ex)
{
DoSomthingWithAnException(ex);
throw new Exception(ex.Message, ex);
}
}
Är det någon som känner till något "generiskt" sätt att lösa detta problem på?
Sv: Fråga om exception-hantering
throw
för att kasta samma exception efter att du har tittat på det.Sv:Fråga om exception-hantering
Nej, det fungerar tyvärr inte. Det verkar nämligen som att stack trace börjar därifrån ett exception kastas – oavsätt om det är ett nytt eller gammal exception. Om jag bara kastar det på nytt (enligt exempel 1 ovan), förlorar jag information om var felet ursprungligen uppstod.Sv: Fråga om exception-hantering
throw;
och inte
throw ex;
Sv:Fråga om exception-hantering