Tento článek je zrcadlovým článkem o strojovém překladu, klikněte zde pro přechod na původní článek.

Pohled: 21123|Odpověď: 0

[Zdroj] Výjimky a zpracování výjimek (Programovací průvodce v C#)

[Kopírovat odkaz]
Zveřejněno 12.04.2015 22:22:03 | | |

Funkce zpracování výjimek v jazyce C# vám pomáhá zvládat jakékoli neočekávané nebo neobvyklé situace, které nastanou během běhu vašeho programu. Zpracování výjimek využívá klíčová slova try, catch a nakonec k vyzkoušení určitých operací k řešení selhání, a i když tyto operace mohou selhat, můžete to zkusit, pokud jste si jistí, že to potřebujete a chcete po tom vyčistit zdroje. Common Language Runtime (CLR), . NET Framework nebo jakákoli knihovna či aplikační kód třetích stran může generovat výjimky. Výjimky se vytvářejí pomocí klíčového slova hod.
V mnoha případech nemusí být výjimky vyvolány metodou přímo volanou kódem, ale jinou metodou níže v zásobníku volání. V tomto případě CLR rozšíří zásobník, aby zjistil, zda existuje metoda, která obsahuje blok zachycení pro daný typ výjimky, a pokud takovou metodu najde, vykoná první nalezený blok zachycení. Pokud se v zásobníku volání nenajde žádný vhodný blok zachycení, proces je ukončen a uživateli je zobrazena zpráva.
V tomto příkladu se používá metoda k detekci, zda je v situaci děleno nulou; Pokud ano, chyba je odhalena. Pokud není řešeno žádné výjimky, tento program ukončí a vygeneruje chybu "DivideByZeroException Not Handled".
  1. class ExceptionTest
  2. {
  3.     static double SafeDivision(double x, double y)
  4.     {
  5.         if (y == 0)
  6.             throw new System.DivideByZeroException();
  7.         return x / y;
  8.     }
  9.     static void Main()
  10.     {
  11.         // Input for test purposes. Change the values to see
  12.         // exception handling behavior.
  13.         double a = 98, b = 0;
  14.         double result = 0;

  15.         try
  16.         {
  17.             result = SafeDivision(a, b);
  18.             Console.WriteLine("{0} divided by {1} = {2}", a, b, result);
  19.         }
  20.         catch (DivideByZeroException e)
  21.         {
  22.             Console.WriteLine("Attempted divide by zero.");
  23.         }
  24.     }
  25. }
Kopírovat kód






Předchozí:C# určuje, zda řetězec obsahuje znak
Další:Zjistěte, zda je webová stránka vytvořena programem fóra Discuz
Zřeknutí se:
Veškerý software, programovací materiály nebo články publikované organizací Code Farmer Network slouží pouze k učení a výzkumu; Výše uvedený obsah nesmí být používán pro komerční ani nelegální účely, jinak nesou všechny důsledky uživatelé. Informace na tomto webu pocházejí z internetu a spory o autorská práva s tímto webem nesouvisí. Musíte výše uvedený obsah ze svého počítače zcela smazat do 24 hodin od stažení. Pokud se vám program líbí, podporujte prosím originální software, kupte si registraci a získejte lepší skutečné služby. Pokud dojde k jakémukoli porušení, kontaktujte nás prosím e-mailem.

Mail To:help@itsvse.com