Tento článok je zrkadlovým článkom o strojovom preklade, kliknite sem pre prechod na pôvodný článok.

Pohľad: 21681|Odpoveď: 0

[Zdroj] Výnimky a spracovanie výnimiek (C# programátorský sprievodca)

[Kopírovať odkaz]
Zverejnené 12. 4. 2015 22:22:03 | | |

Funkcia spracovania výnimiek v jazyku C# vám pomáha zvládnuť akékoľvek neočakávané alebo nezvyčajné situácie, ktoré nastanú počas bežiaceho programu. Spracovanie výnimiek používa kľúčové slová try, catch a nakoniec na vyskúšanie určitých operácií na riešenie zlyhaní, a hoci tieto operácie môžu zlyhať, môžete to skúsiť, ak ste si istí, že to potrebujete a chcete potom vyčistiť zdroje. Common Language Runtime (CLR), . NET Framework alebo akýkoľvek knižničný či aplikačný kód tretích strán môže generovať výnimky. Výnimky sa vytvárajú pomocou kľúčového slova hodiť.
V mnohých prípadoch výnimky nemusia byť vytvorené metódou volanou priamo kódom, ale inou metódou nižšie v zásobníku volaní. V tomto prípade CLR rozšíri zásobník, aby zistil, či existuje metóda, ktorá obsahuje blok záchytu pre daný typ výnimky, a ak nájde takúto metódu, vykoná prvý nájdený blok zachytenia. Ak sa v zásobníku volaní nenájde žiadny vhodný blok zachytenia, proces sa ukončí a používateľovi sa zobrazí správa.
V tomto príklade sa používa metóda na zistenie, či je situácia delená nulou; Ak áno, chyba je odhalená. Ak neexistuje spracovanie výnimiek, 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írovať kód






Predchádzajúci:C# určuje, či reťazec obsahuje znak
Budúci:Zistite, či je webová stránka vytvorená programom fóra Discuz
Vyhlásenie:
Všetok softvér, programovacie materiály alebo články publikované spoločnosťou Code Farmer Network slúžia len na vzdelávacie a výskumné účely; Vyššie uvedený obsah nesmie byť použitý na komerčné alebo nezákonné účely, inak nesú všetky následky používateľmi. Informácie na tejto stránke pochádzajú z internetu a spory o autorské práva s touto stránkou nesúvisia. Musíte úplne vymazať vyššie uvedený obsah zo svojho počítača do 24 hodín od stiahnutia. Ak sa vám program páči, podporte originálny softvér, zakúpte si registráciu a získajte lepšie originálne služby. Ak dôjde k akémukoľvek porušeniu, kontaktujte nás prosím e-mailom.

Mail To:help@itsvse.com