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 TryJoskus 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 SubEDIT: Jaa että .NET
Aihe on jo aika vanha, joten et voi enää vastata siihen.