Ohjelmassani on aliohjelman aliohjelman aliohjelma joka tarkistaa erään merkkijonon. Miten saan virhetilanteessa keskeytettyä ohjelman ajon alkutilanteeseen?
Kaipaisin ehkä jotain tämän tyyppistä:
If virhe = true then PoistuPääohjelmaan
Poikkeuksilla (exceptions). Kirjoita pääohjelmaan try-catch-rakenne ja heitä (throw) aliohjelmasta virhetilanteessa poikkeus.
Try 'Koodi joka saattaa tuottaa virheen tähän Catch ex as Exception 'tota voi varmaan tarkentaakin MsgBox("Virhe: " & ex.ToString) 'kannattaa tukia muukin sisältö Exit Sub '<--- "PoistuPääohjelmaan tai 'return false' jos funktio End Try
Joskus kannattaa jakaa koodi useampaankin Try-Catch -lohkoon
EDIT: Olikin vähän vanhentunnu sivu mulla....
Tuo Try tulee siis pääohjelmaan ja ali-ali-ohjelmaan tulee Throw
Try Catch hommeli on jokseenkin tuttua, mutta siitä tuo Throw oli uusi juttu.
Kits.
Toinen tapa (en tiedä onko parempi, mutta itse olen käyttänyt aina..)
Sub JokuJuttu() On Error GoTo Err 'Koodi, joka varmaankin tuottaa virheitä: Dim n(2) As Integer, a As String For a = 0 To 100 n(a) = a * a Next a 'End of virheellinen koodi Exit Sub Err: MsgBox "Error: " & Error, vbCritical End Sub
EDIT: Jaa että .NET
Aihe on jo aika vanha, joten et voi enää vastata siihen.