HAVIT Knowledge Base

Vývoj webových aplikací, .NET, SQL, návrh
Welcome to HAVIT Knowledge Base Sign in | Join | Help
-
Home Články Forums Obrázky Soubory

.NET Framework

Microsoft .NET Framework, Base Class Library

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!


Published 13. června 2007 14:22 by Jiří Kanda

Comment Notification

If you would like to receive an email when updates are made to this post, please register here

Subscribe to this post's comments using RSS

Comments

 

Q said:

Cool ! ;) Neznal ... ale je to prehistorie

června 14, 2007 13:34
 

Rob said:

Neznal, popravdě sem ani nikdy neviděl WrappedRuntimeException, abych se přiznal:)

listopadu 4, 2007 16:40
 

Jiří Kanda said:

Díky za upozornění, má to být RuntimeWrappedException. A abych se taky přiznal, prakticky jsem se s touto třídou také nikdy nesetkal.

listopadu 5, 2007 8:57

What do you think?

(required) 
(optional)
(required) 
Enter the code you see below

Submit