|
|
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".- class ExceptionTest
- {
- static double SafeDivision(double x, double y)
- {
- if (y == 0)
- throw new System.DivideByZeroException();
- return x / y;
- }
- static void Main()
- {
- // Input for test purposes. Change the values to see
- // exception handling behavior.
- double a = 98, b = 0;
- double result = 0;
- try
- {
- result = SafeDivision(a, b);
- Console.WriteLine("{0} divided by {1} = {2}", a, b, result);
- }
- catch (DivideByZeroException e)
- {
- Console.WriteLine("Attempted divide by zero.");
- }
- }
- }
Kopírovať kód
|
Predchádzajúci:C# určuje, či reťazec obsahuje znakBudúci:Zistite, či je webová stránka vytvorená programom fóra Discuz
|