Kirjautuminen

Haku

Tehtävät

Hakemisto: QBasic: Virheenkäsittely: ON ERROR

ON ERROR-käskyllä voidaan määritellä, mitä ohjelma tekee virhetilanteen ilmentyessä (esim. jako nollalla tai ylivuoto).

ON ERROR (GOTO rivi|nimiö)

(nimiö:)
[käskylohko]
(RESUME [NEXT])

ON ERROR-käskyn osat ja niiden tehtävät:

Pakolliset osatTehtävä
GOTO rivi|nimiöRivin numero tai nimiön nimi, johon ohjelma siirtyy virherilanteen sattuessa
RESUMEOhjelma jatkaa virhetilanteen selvityksen jälkeen suoritustaan riviltä, jolla virhe tapahtui
Vapaaehtoiset osatTehtävä
käskylohkomikä tahansa QBasicin lause (tai useampi lause)[tr]NEXT (RESUMEn jälkeen)Ohjelma jatkaa suoritustaan virhettä seuraavalta riviltä

Esimerkki:

CLS
ON ERROR GOTO virhetilanne  ' Ohjelma jatkaa suoritustaan nimiöstä virhetilanne, jos ohjelman suorituksessa tapahtuu virhe
jakaja = 0
a = 50 / jakaja  ' Aiheutetaan nollallajakovirhe
CHDIR "a:\"  ' Yritetään muuttaa oletushakemisto a:ksi (levykeasema)
ERROR 16  ' Aiheutetaan virhe numero 16 (kaava liian monimutkainen)

END

virhetilanne:
SELECT CASE ERR
  CASE 11  ' 11 on nollalla jakamisen virhekoodi
  CLS
  INPUT "Nollalla ei voi jakaa, joten anna uusi jakaja: ", jakaja  ' Korjataan virhetilanne kysymällä uutta jakajaa
  RESUME  ' Palataan takaisin kohtaan, jossa virhe tapahtui

  CASE 71  ' 71 on virhekoodi tapahtumalle levyke ei ole valmiina
  CLS
  PRINT "A-asemassa ei ole levykettä"  ' Annetaan ilmoitus levykkeen puuttumisesta
  SLEEP
  RESUME NEXT  ' Ilmoituksen jälkeen jatketaan virhetilannetta seuraavalta riviltä

  CASE ELSE  ' Jos mikään aiemmista virheenkorjausyrityksistä ei onnistu...
  CLS
  PRINT "Ohjelmassa tapahtui täysin odottamaton virhe, ja ohjelma lopetetaan"
  END  ' ...ohjelma joudutaan lopettamaan
END SELECT

Muuta aiheeseen liittyvää:
Ajonaikaiset virhekoodit, ERROR, ERR

Tietoa sivustosta