|
|
Julkaistu 12.4.2015 22.22.03
|
|
|

C#-kielen poikkeusten käsittelyominaisuus auttaa sinua käsittelemään mahdollisia odottamattomia tai epätavallisia tilanteita ohjelman aikana. Poikkeuskäsittely käyttää try, catch ja finally avainsanoita tiettyjen operaatioiden hoitamiseen epäonnistumisissa, ja vaikka näillä operaatioilla on mahdollisuus epäonnistua, voit kokeilla sitä, jos olet varma, että tarvitset tämän ja haluat siivota resursseja sen jälkeen. Common Language Runtime (CLR), . NET Framework tai mikä tahansa kolmannen osapuolen kirjasto tai sovelluskoodi voi aiheuttaa poikkeuksia. Poikkeuksia luodaan heittoavainsanalla. Monissa tapauksissa poikkeuksia ei välttämättä nosteta suoraan koodilla kutsutulla menetelmällä, vaan toisella menetelmällä kutsupinon alempana. Tässä tapauksessa CLR laajentaa pinoa nähdäkseen, onko olemassa metodi, joka sisältää kyseisen poikkeustyypin catch-lohkon, ja jos se löytää tällaisen metodin, se suorittaa ensimmäisen löydetyn catch-lohkon. Jos sopivaa catch-lohkoa ei löydy mistään kutsupinosta, prosessi lopetetaan ja käyttäjälle näytetään viesti. Tässä esimerkissä menetelmää käytetään havaitsemaan, onko tilanne, jossa se jaetaan nollalla; Jos on, virhe havaitaan. Jos poikkeuskäsittelyä ei ole, ohjelma lopettaa ja tuottaa virheen "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.");
- }
- }
- }
Kopioi koodi
|
Edellinen:C# määrittää, sisältääkö merkkijono merkinSeuraava:Selvitä, onko verkkosivusto tehty Discuz-foorumiohjelman toimesta
|