Programátorská hádanka – Výjimka ve výjimkách

Jaký je rozdíl v zachytávání výjimek při použití typu výjimky Exception

try
{
...
}
catch (Exception e)
{
...
}

a bez použití tohoto typu, tedy

try
{
...
}
catch
{
...
}

Zdůrazňuji, že tento rozdíl existuje jen v .NET Frameworku 1.x, ve verzi 2.0 jsou způsoby funkčně rovnocenné.

Odpověď najdete o řádku níže napsanou bílým písmem (pro odtajnění třeba označte):

>>> Konstrukce catch (Exception e) zachytává jen CLS-compliant výjimky, catch zachytává všechny chyby. Praktický rozdíl je při zachytávání chyb z COM objektů, jejichž chyby nejsou CLS-compliant výjimkami. .NET Framework 2.0 tyto chyby z COM objektů zabalí do RuntimeWrappedException, které jsou CLS-compliant, takže je chyba zachycena i při použití catch (Exception e).  <<<

…a jako posledně: teď se přiznejte, kdo jste to znal!

1 thought on “Programátorská hádanka – Výjimka ve výjimkách

  1. avatar MaliAplij - MatiseliMaliAplij - Matiseli

    Nepracuji v tomto programovacím jazyce, ale v Javě je to následovné:
    Příklad číslo jedna zachytí pouze vyjímky obecné, nikoli například vstup/výstup.

    Druhý (v Javě jde o špatnou syntaxi, jen si domýšlím) zachytí všechny.

    To se mi líbí

Napsat komentář