Jaký je rozdíl v prapagaci výjimky z bloku catch:
try
{
...
}
catch (Exception e)
{
throw;
}
versus
try
{
...
}
catch (Exception e)
{
throw e;
}
Odpověď je tentokrát jednoduchá a jako obvykle ji najdete o řádku níže napsanou bílým písmem (pro odtajnění třeba označte):
>>> Při vyhození výjimkt přes „throw;“ se nezmění stack trace – výjimka se stále tváří, že vzešla z původní metody. Při vyhození přes „throw e;“ je změněn stack trace, výjimka se tváří, že vzešla z naší metody obsluhující výjimku. <<<