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!
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íTo se mi líbí