Kokeile ... Catch ... Lopuksi Throws, käyttäjän määrittelemä poikkeus VB.Netissä

Sisällysluettelo:

Anonim

Mikä on poikkeus?

Poikkeus viittaa ongelmaan, joka syntyy ohjelman suorituksen aikana. Sen aiheuttaa odottamaton olosuhde. Hyvä esimerkki on, kun suoritat jako-operaatiota ja jaat sitten nollalla (0). Poikkeus nostetaan.

Tässä Visual Basic -opetusohjelmassa opit:

  • Mikä on poikkeus?
  • Mikä on poikkeusten käsittely?
  • Kokeile / kiinni -syntaksi
  • Esimerkki poikkeusten käsittelemisestä
  • Käyttäjän määrittelemät poikkeukset
  • Esineiden heittäminen

Mikä on poikkeusten käsittely?

Poikkeuksia lukuun ottamatta voit siirtää ohjelman hallinnan osasta toiseen. VB.NET: ssä poikkeuksia käsitellään seuraavilla 4 avainsanalla:

Avainsana Yksityiskohta
Yrittää Try-lohkon tehtävänä on tunnistaa koodilohko, jolle tietty poikkeus aktivoidaan. Sen jälkeen tulisi olla kiinnityslohko (t).
Ottaa kiinni Poikkeus saadaan kiinni tässä lohkossa. Se on poikkeuskäsittelijä, jossa poikkeusta käsitellään.
Lopuksi Käytä Viimeinen-lohkoa lausejoukon suorittamiseen riippumatta siitä, onko poikkeus tapahtunut vai ei.
Heittää Poikkeus heitetään ongelman esiintymisen jälkeen. Tämä on Heitä-avainsanan työ.

Kokeile / kiinni -syntaksi

Try / Catch-käskyt käyttävät 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 tulisi ympäröidä koodi, joka saattaa aiheuttaa poikkeuksen. Tämä koodi tunnetaan suojattuna koodina. Voit käyttää useita saalislausekkeita, kun sinun on pyydettävä erityyppisiä poikkeuksia.

Esimerkki poikkeusten käsittelemisestä

Try / Catch-käskyjen avulla voit erottaa tavallisen ohjelmakoodisi virheiden käsittelyjärjestelmästä. Osoittakaamme, kuinka poikkeusta käsitellään kokeilemalla, kiinni ja lopuksi avainsanoilla.

Vaihe 1) Luo uusi konsolisovellus.

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

Module Module1Sub divisionFunction(ByVal n1 As Integer, ByVal n2 As Integer)Dim answer As IntegerTryanswer = n1 \ n2Catch ex As DivideByZeroExceptionConsole.WriteLine("Exception: {0}", ex)FinallyConsole.WriteLine("Answer is: {0}", answer)End TryEnd SubSub Main()divisionFunction(4, 0)Console.ReadKey()End SubEnd Module

Vaihe 3) Suorita koodi napsauttamalla työkalurivin Käynnistä-painiketta. Sinun pitäisi saada seuraava tulos:

Tässä on kuvakaappaus koodista:

Koodin selitys:

  1. Moduulin nimisen moduulin luominen 1.
  2. Alitoiminnon luominen nimeltä divisioonatoiminto, jossa on kaksi kokonaislukuargumenttia n1 ja n2. ByVal on VB.NET-avainsana, joka ilmoittaa, että argumenttien arvot välitetään arvojen mukaan.
  3. Luodaan kokonaisluku muuttuja nimeltä vastaus.
  4. Aloita Try / Catch-lohko. Meidän on ympäröitävä koodi, jonka epäilemme mahdollisesti aiheuttavan poikkeuksen tässä lohkossa.
  5. Suoritetaan jakooperaatio muuttujien n1 ja n2 arvojen välillä. Jakamistoiminnon tulos osoitetaan muuttujalle vastaus. Tämä koodi voi aiheuttaa poikkeuksen, esimerkiksi kun jaamme luvun nollalla, joten olemme ympäröineet sen Try / Catch-lohkoilla.
  6. DivideByZeroException-nimisen poikkeuksen sieppaaminen ja generoidun poikkeussanoman määrittäminen entiselle
  7. Tulostamalla tekstiä konsolille ilmoittaaksesi käyttäjälle korotetun tyypin / nimen.
  8. Viimeinen lohko. Tämä suorittaa, onko poikkeus kiinni vai ei.
  9. Tulostetaan tekstiä konsolille, joka osoittaa jako-operaation tuloksen.
  10. Kokeile-lohkon loppu eli virhekäsittelykoodin loppu.
  11. DivisionFunction-alimenettelyn loppu.
  12. Päämenettelyn alku.
  13. DivisionFunction-alimenettelyn kutsuminen / kutsuminen Kahden kokonaislukuargumentin arvot välitetään tähän. Arvo n1 = 4 ja n2 = 0. Tämä tarkoittaa, että jako-operaatio on 4 \ 0, ts. N1 \ n2.
  14. Keskeytetään konsoli-ikkunan odottaminen, kunnes käyttäjä ryhtyy toimiin sen sulkemiseksi.
  15. Päämenettelyn loppu.
  16. Moduulin loppu.

Käyttäjän määrittelemät poikkeukset

VB.NET antaa sinun määrittää omat poikkeuksesi. Voit saada käyttäjän määrittämiä poikkeusluokkia ApplicationException-luokasta. Osoittakaamme tätä esimerkillä:

Vaihe 1) Luo uusi konsolisovellus.

Vaihe 2) Käytä seuraavaa koodia:

Module Module1Public Class HeightIsZeroException : Inherits ApplicationExceptionPublic Sub New(ByVal text As String)MyBase.New(text)End SubEnd ClassPublic Class HeightDim height As Integer = 0Sub showHeight()If (height = 0) ThenThrow (New HeightIsZeroException("Zero Height found"))ElseConsole.WriteLine("Height is: {0}", height)End IfEnd SubEnd ClassSub Main()Dim hght As Height = New Height()Tryhght.showHeight()Catch ex As HeightIsZeroExceptionConsole.WriteLine("HeightIsZeroException: {0}", ex.Message)End TryConsole.ReadKey()End SubEnd Module

Vaihe 3) Suorita koodi napsauttamalla yläpalkin Käynnistä-painiketta. Sinun pitäisi saada seuraava tulos:

Tässä on kuvakaappaus koodista:

Koodin selitys:

  1. Moduulin nimisen moduulin luominen 1.
  2. Luodaan poikkeusluokka nimeltä HeightIsZeroException. Luokka perii kaikki ApplicationException-luokan.
  3. Uuden alimenettelyn luominen. Se vie yhden merkkijonon argumentin nimeltä teksti.
  4. Soitetaan perusluokan rakentaja 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 kokonaisluku muuttuja nimeltä Korkeus ja alustetaan sen arvo nollaksi.
  9. Luo alimenettely, jonka nimi on showHeight ().
  10. Tarkistetaan, milloin muuttujan Korkeus arvo on 0. Olemme käyttäneet If… Then -ehtoa.
  11. Heittää HeightIsZeroException, jos yllä oleva ehto on totta. Viesti Zero Height Found näytetään, kun tämä poikkeus heitetään.
  12. Muu osa, joka suoritetaan, jos If-ehto ei ole totta.
  13. Konsolille tulostettava viesti, joka näyttää korkeuden, kun se ei ole 0.
  14. If-ehdon loppu.
  15. ShowHeight () -alimenettelyn loppu.
  16. Luokan loppu Korkeus.
  17. Päämenettelyn alku.
  18. Kohteen nimeltä Korkeus luominen Korkeus-luokan esiintymänä.
  19. Poikkeusten käsittelylohkon alku.
  20. Käynnistetään korkeus-luokassa määritelty showHeight () -alimenettely. Olemme käyttäneet tämän luokan objektia tämän menetelmän käyttämiseen. Tämä rivi voi johtaa poikkeukseen. Siksi olemme ympäröineet sen poikkeusten käsittelykoodilla.
  21. HeightIsZeroException-poikkeuksen saaminen objektina ex, jos se tapahtuu.
  22. Konsolille tulostettava viesti, kun HeightIsZeroException on kiinni.
  23. Poikkeuksen käsittelylohkon loppu.
  24. Keskeytä konsoli-ikkuna odottamaan käyttäjän ryhtyvän toimiin sen sulkemiseksi.
  25. Päämenettelyn loppu.
  26. Moduulin loppu.

Esineiden heittäminen

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

Vaihe 1) Luo uusi konsolisovellus.

Vaihe 2) Käytä seuraavaa koodia:

Module Module1Sub Main()TryThrow New ApplicationException("Throwing a custom exception")Catch ex As ExceptionConsole.WriteLine(ex.Message)FinallyConsole.WriteLine("The Finally Block")End TryConsole.ReadKey()End SubEnd Module

Vaihe 3) Suorita koodi napsauttamalla yläpalkin Käynnistä-painiketta. Sinun pitäisi saada seuraava:

Tässä on kuvakaappaus koodista:

Koodin selitys:

  1. Moduulin nimisen moduulin luominen 1.
  2. Päämenettelyn alku.
  3. Virhekäsittelykoodin alku.
  4. Poikkeusobjektin heittäminen. Tämä koodi voi luoda poikkeuksen, joten olemme ympäröineet sen Try / Catch-lohkolla.
  5. Poikkeuksen sieppaaminen objektina ex, jos viiva heittää poikkeuksen.
  6. Tulostetaan poikkeussanoma konsolille, jos se tapahtuu.
  7. Viimeinen lohko suorittaa, onko poikkeus kiinni vai ei.
  8. Konsolille tulostettava viesti, kun viimeinen lohko suoritetaan.
  9. Poikkeuksen käsittelykoodin loppu.
  10. Keskeytä konsoli hetkeksi odottaessasi käyttäjän ryhtyvän toimiin sen sulkemiseksi.
  11. Päämenettelyn loppu.
  12. Moduulin loppu.

Yhteenveto

  • Poikkeus viittaa ongelmaan, joka syntyy odottamattomien olosuhteiden aiheuttaman ohjelman suorituksen aikana.
  • Jos epäilet, että jokin koodi tuottaa poikkeuksen, ympäröi se Try / Catch-lohkolla.
  • Viimeinen lohko tulee Try / Catch-lohkon jälkeen ja suorittaa, onko poikkeus kiinni vai ei.
  • VB.NET antaa meille mahdollisuuden luoda mukautettuja poikkeuksia.