|
|
Opslået på 12/04/2015 22.22.03
|
|
|

Undtagelseshåndteringsfunktionen i C#-sproget hjælper dig med at håndtere uventede eller usædvanlige situationer, der opstår, mens dit program kører. Undtagelseshåndtering bruger nøgleordene try, catch og til sidst til at prøve visse operationer til at håndtere fejl, og selvom disse operationer har potentiale til at fejle, kan du prøve, hvis du er sikker på, at du har brug for det og vil rydde op i ressourcerne bagefter. Common Language Runtime (CLR), . NET Framework eller ethvert tredjepartsbibliotek eller applikationskode kan generere undtagelser. Undtagelser oprettes ved hjælp af nøgleordet kast. I mange tilfælde kan undtagelser ikke oprettes af en metode, der kaldes direkte via kode, men af en anden metode længere nede i kaldsstakken. I dette tilfælde udvider CLR stakken for at se, om der findes en metode, der indeholder en catch-blok for netop den undtagelsestype, og hvis den finder en sådan metode, udfører den den første sådan catch-blok, der findes. Hvis der ikke findes en passende catch-blok nogen steder i kaldstakken, afsluttes processen, og en besked vises til brugeren. I dette eksempel bruges en metode til at opdage, om der er en situation, hvor den er divideret med nul; Hvis der er tilfældet, opdages fejlen. Hvis der ikke er nogen undtagelseshåndtering, vil dette program afslutte og give en "DivideByZeroException Not Handled"-fejl.- 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.");
- }
- }
- }
Kopier kode
|
Tidligere:C# afgør, om en streng indeholder et tegnNæste:Find ud af, om en hjemmeside er lavet af Discuz-forumprogrammet
|