Ez a cikk egy tükör gépi fordítás, kérjük, kattintson ide, hogy ugorjon az eredeti cikkre.

Nézet: 21123|Válasz: 0

[Forrás] Kivételek és kivételkezelés (C# programozási útmutató)

[Linket másol]
Közzétéve 2015. 04. 12. 22:22:03 | | |

A C# nyelv kivételkezelő funkciója segít kezelni bármilyen váratlan vagy szokatlan helyzetet, amely a program futása közben történik. A kivételkezelés a try, catch és finally kulcsszavakat használja bizonyos műveletek meghibásodásának kezelésére, és bár ezek a műveletek meghibásodási potenciállal rendelkeznek, megpróbálhatod, ha biztos vagy benne, hogy ezt meg kell tenned, és utána szeretnéd tisztítani az erőforrásokat. Közös nyelvi futás (CLR), . A NET Framework vagy bármely harmadik féltől származó könyvtár vagy alkalmazáskód kivételeket generálhat. A kivételeket a dobás kulcsszó segítségével hozza létre.
Sok esetben kivételeket nem egy közvetlenül kód által megidézett metódus emel, hanem egy másik, a hívás verem mélyebb részén lévő módszerrel. Ebben az esetben a CLR kibővíti a veremet, hogy megnézze, van-e olyan metódus, amely tartalmazza-e egy catch blockot az adott kivételtípushoz, és ha talál ilyen metódust, végrehajtja az első ilyen catch blockot. Ha a hívás halomban sehol sem található megfelelő catch block, a folyamat megszűnik, és üzenetet jelenít meg a felhasználónak.
Ebben a példában egy módszert használnak annak kimutatására, hogy van-e olyan helyzet, ahol a nullával osztjuk; Ha van, akkor a hibát megkapják. Ha nincs kivételkezelés, a program megszűnik, és "DivideByZeroException Not Handled" hibát okoz.
  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. }
Kód másolása






Előző:C# határozza meg, hogy egy string tartalmaz-e karaktert
Következő:Megállapítsuk, hogy egy weboldalt a Discuz fórumprogram készített-e
Lemondás:
A Code Farmer Network által közzétett összes szoftver, programozási anyag vagy cikk kizárólag tanulási és kutatási célokra szolgál; A fenti tartalmat nem szabad kereskedelmi vagy illegális célokra használni, különben a felhasználók viselik az összes következményet. Az oldalon található információk az internetről származnak, és a szerzői jogi vitáknak semmi köze ehhez az oldalhoz. A fenti tartalmat a letöltés után 24 órán belül teljesen törölni kell a számítógépéről. Ha tetszik a program, kérjük, támogassa a valódi szoftvert, vásároljon regisztrációt, és szerezzen jobb hiteles szolgáltatásokat. Ha bármilyen jogsértés történik, kérjük, vegye fel velünk a kapcsolatot e-mailben.

Mail To:help@itsvse.com