Poikkeuskäsittely VB.Netissä: Kokeile & Catch -käsittelyesimerkkejä

Mikä on poikkeus VB.Netissä?

An Poikkeus VB.Netissä viittaa ongelmaan, joka ilmenee ohjelman suorittamisen aikana. Sen aiheuttaa odottamaton tilanne. Hyvä esimerkki on, kun suoritat jakooperaation ja jaat sitten nollalla (0). Poikkeus otetaan esille.

Mitä on poikkeuskäsittely VB.Netissä?

Poikkeuksilla mukana VB.Net, voit siirtää ohjelman hallinnan osasta toiseen. VB.Netissä poikkeukset käsitellään seuraavilla neljällä avainsanalla:

avainsana Yksityiskohta
Yrittää Try-lohkon tehtävänä on tunnistaa koodilohko, jolle erityinen poikkeus aktivoidaan. Sen jälkeen pitäisi olla kiinnityslohko(t).
paini Poikkeuksen sieppaus tehdään tässä lohkossa. Se on poikkeuskäsittelijä, jossa poikkeusta käsitellään.
Vihdoin Käytä Lopuksi-lohkoa suorittaaksesi joukon lauseita riippumatta siitä, onko poikkeus tapahtunut vai ei.
Heittää Poikkeus tehdään ongelman ilmetessä. Tämä on Throw-avainsanan työ.

Try Catchin syntaksi VB.Netissä

Try Catch -lauseet VB.Netissä määritellään käyttämällä alla olevaa syntaksia:

Try
   [ try_Statement(s) ]
   [ Exit Try ]
[ Catch [ exception_name [ As type ] ] [ When expression ]
   [ catch_Statement(s) ]
   [ Exit Try ] ]
[ Catch ... ]
[ Finally
   [ finally_Statement(s) ] ]
End Try

Try/Catch-lohkon tulee ympäröidä koodi, joka voi aiheuttaa poikkeuksen. Tämä koodi tunnetaan suojattuna koodina. Voit käyttää useita catch-lauseita, kun tarvitset erityyppisiä poikkeuksia.

Esimerkki poikkeusten käsittelystä VB.Netissä Try Catchin ja Lopun avulla

Try/Catch-lauseiden avulla voit erottaa tavallisen ohjelmakoodisi virheenkäsittelyjärjestelmästä. Osoitetaan, kuinka poikkeuksia käsitellään käyttämällä Try-, Catch- ja Last-avainsanoja.

Vaihe 1) Luo uusi konsolisovellus.

Vaihe 2) Käytä tätä koodia:

Module Module1
    Sub divisionFunction(ByVal n1 As Integer, ByVal n2 As Integer)
        Dim answer As Integer
        Try
            answer = n1 \ n2
        Catch ex As DivideByZeroException
            Console.WriteLine("Exception: {0}", ex)
        Finally
            Console.WriteLine("Answer is: {0}", answer)
        End Try
    End Sub
    Sub Main()
        divisionFunction(4, 0)
        Console.ReadKey()
    End Sub

End Module

Vaihe 3) Napsauta työkalupalkin Käynnistä-painiketta suorittaaksesi koodin. Sinun pitäisi saada seuraava tulos:

poikkeus Käsittely

Tässä on kuvakaappaus koodista:

poikkeus Käsittely

Koodin selitys:

  1. Moduuli nimeltä Moduuli1 luominen.
  2. DivisionFunction-nimisen aliproseduurin luominen kahdella kokonaislukuargumentilla n1 ja n2. ByVal on VB.Net-avainsana, joka ilmoittaa, että argumenttien arvot välitetään arvon mukaan.
  3. Luodaan kokonaislukumuuttuja nimeltä vastaus.
  4. Try/Catch-lohkon alku. Meidän täytyy ympäröidä koodi, jonka epäilemme aiheuttavan poikkeuksen tällä lohkolla.
  5. Suoritetaan jakooperaatio muuttujien n1 ja n2 arvojen välillä. Jakooperaation tulos liitetään muuttujan vastaukseen. Tämä koodi voi aiheuttaa poikkeuksen, esimerkiksi kun jaamme luvun nollalla, joten olemme ympäröineet sen Try/Catch-lohkoilla.
  6. Otetaan kiinni DivideByZeroException-niminen poikkeus ja määritetään luotu poikkeussanoma ex.
  7. Tulostetaan tekstiä konsoliin, jotta käyttäjälle ilmoitetaan poikkeuksen tyypistä/nimestä.
  8. Lopuksi lohko. Tämä suoritetaan riippumatta siitä, onko poikkeus kiinni vai ei.
  9. Tulostetaan konsolille tekstiä, joka näyttää jakamisen tuloksen.
  10. Try-lohkon loppu, eli virheenkäsittelykoodin loppu.
  11. DivisionFunction-alimenettelyn loppu.
  12. Pääalamenettelyn aloitus.
  13. DivisionFunction-alimenettelyn kutsuminen/kutsuminen. Kahden kokonaislukuargumentin arvot välitetään tässä. Arvot n1=4 ja n2=0. Tämä tarkoittaa, että jakooperaatio on 4\0, eli n1\n2.
  14. Konsoli-ikkunan keskeyttäminen odottamassa, että käyttäjä sulkee sen.
  15. Pääalamenettelyn loppu.
  16. Moduulin loppu.

Käyttäjän määrittämät poikkeukset VB.Netissä

VB.Netin avulla voit määrittää omia poikkeuksiasi. Voit saada käyttäjän määrittämiä poikkeusluokkia ApplicationException-luokasta. Osoittakaamme tämä esimerkillä:

Esimerkki käyttäjän määrittämästä poikkeuksesta VB.Netissä

Tässä on esimerkki käyttäjän määrittämästä poikkeuksesta VB.Netissä:

Vaihe 1) Luo uusi konsolisovellus.

Vaihe 2) Käytä seuraavaa koodia:

Module Module1

    Public Class HeightIsZeroException : Inherits ApplicationException
        Public Sub New(ByVal text As String)
            MyBase.New(text)
        End Sub
    End Class
    Public Class Height
        Dim height As Integer = 0
        Sub showHeight()
            If (height = 0) Then
                Throw (New HeightIsZeroException("Zero Height found"))
            Else
                Console.WriteLine("Height is: {0}", height)
            End If
        End Sub
    End Class
    Sub Main()
        Dim hght As Height = New Height()
        Try
            hght.showHeight()
        Catch ex As HeightIsZeroException
            Console.WriteLine("HeightIsZeroException: {0}", ex.Message)
        End Try
        Console.ReadKey()
    End Sub

End Module

Vaihe 3) Napsauta yläpalkin Käynnistä-painiketta suorittaaksesi koodin. Sinun pitäisi saada seuraava tulos:

Käyttäjän määrittämä poikkeus

Tässä on kuvakaappaus koodista:

Käyttäjän määrittämä poikkeus

Koodin selitys:

  1. Moduuli nimeltä Moduuli1 luominen.
  2. Luodaan poikkeusluokka nimeltä HeightIsZeroException. Luokka perii kaiken ApplicationException-luokan.
  3. Luodaan alimenettely nimeltä Uusi. Se vie yhden merkkijonoargumentin nimeltä teksti.
  4. Kutsutaan perusluokan konstruktori ja välitetään sille yllä oleva argumentti.
  5. Uuden alimenettelyn loppu.
  6. HeightIsZeroException-luokan loppu.
  7. Luodaan luokka nimeltä Korkeus. Sen julkisen pääsyn muokkaaja on julkinen, mikä tarkoittaa, että se on julkisesti saatavilla.
  8. Luodaan kokonaislukumuuttuja nimeltä Height ja alustetaan sen arvo 0:ksi.
  9. Luodaan alimenettely nimeltä showHeight().
  10. Tarkistetaan, milloin muuttujan Korkeus arvo on 0. Olemme käyttäneet If…Then-ehtoa.
  11. HeightIsZeroExceptionin heittäminen, jos yllä oleva ehto on totta. Viesti Nollakorkeus löydetty näytetään, kun tämä poikkeus heitetään.
  12. Else-osa, joka suoritetaan, kun If-ehto ei ole tosi.
  13. Konsoliin tulostettava viesti, joka näyttää korkeuden, kun se ei ole 0.
  14. Jos-ehdon loppu.
  15. ShowHeight()-aliprosessin loppu.
  16. Luokan loppu Korkeus.
  17. Pääalamenettelyn aloitus.
  18. Korkeus-nimisen objektin luominen Height-luokan esiintymäksi.
  19. Poikkeuksenkäsittelylohkon alku.
  20. Height-luokassa määritellyn showHeight()-aliproseduurin kutsuminen. Olemme käyttäneet tämän luokan objektia päästäksemme tähän menetelmään. Tämä rivi voi johtaa poikkeukseen. Siksi olemme ympäröineet sen poikkeuskäsittelykoodilla.
  21. HeightIsZeroException-poikkeuksen saaminen objektina ex, jos se tapahtuu.
  22. Konsoliin tulostettava viesti, kun HeightIsZeroException havaitaan.
  23. Poikkeuksenkäsittelylohkon loppu.
  24. Keskeytä konsoli-ikkuna odottamaan, että käyttäjä sulkee sen.
  25. Pääalamenettelyn loppu.
  26. Moduulin loppu.

Heitä poikkeus VB.Netissä

Poikkeuskäsittelyssä voit heittää esineen. Objektin on kuitenkin oltava johdettu järjestelmästä. Poikkeusluokka, suoraan tai epäsuorasti. Esimerkiksi:

Esimerkki heittopoikkeuksesta VB.Netissä

Alla on esimerkki heittopoikkeuksesta VB.Netissä:

Vaihe 1) Luo uusi konsolisovellus.

Vaihe 2) Käytä seuraavaa koodia:

Module Module1

    Sub Main()
        Try
            Throw New ApplicationException("Throwing a custom exception")
        Catch ex As Exception
            Console.WriteLine(ex.Message)
        Finally
            Console.WriteLine("The Finally Block")
        End Try
        Console.ReadKey()
    End Sub


End Module

Vaihe 3) Napsauta yläpalkin Käynnistä-painiketta suorittaaksesi koodin. Sinun pitäisi saada seuraavat:

Heitä poikkeus

Tässä on kuvakaappaus koodista:

Heitä poikkeus

Koodin selitys:

  1. Moduuli nimeltä Moduuli1 luominen.
  2. Pääalamenettelyn aloitus.
  3. Virheenkäsittelykoodin alku.
  4. Poikkeusobjektin heittäminen. Tämä koodi saattaa luoda poikkeuksen, joten olemme ympäröineet sen Try/Catch-esolla.
  5. Poikkeuksen kiinniotto objektina ex, jos viiva heittää poikkeuksen.
  6. Poikkeusviestin tulostaminen konsoliin siltä varalta, että se tapahtuu.
  7. Lopuksi -lohko, joka suoritetaan riippumatta siitä, havaitaanko poikkeus vai ei.
  8. Viesti, joka tulostetaan konsolissa, kun Lopuksi-lohko suoritetaan.
  9. Poikkeuksenkäsittelykoodin loppu.
  10. Pysäytä konsoli hetkeksi odottamaan, että käyttäjä sulkee sen.
  11. Pääalamenettelyn loppu.
  12. Moduulin loppu.

Yhteenveto

  • Poikkeus viittaa ongelmaan, joka ilmenee ohjelman suorituksen aikana ja jonka aiheuttaa odottamaton olosuhde.
  • Jos epäilet, että jokin koodi luo poikkeuksen, ympäröi se Try/Catch-lohkolla.
  • Lopuksi-lohko tulee Try/Catch-lohkon jälkeen ja suorittaa sen, onko poikkeus kiinni vai ei.
  • VB.Net antaa meille mahdollisuuden luoda mukautettuja poikkeuksia.