runtime error/fi

From Lazarus wiki
Jump to navigationJump to search

English (en) suomi (fi)

Ajonaikainen virhe (run-time error) on korjaamaton virhetila, joka syntyy ajon aikana, eli ohjelman suorituksessa.

Käyttäytyminen

FPC lisää koodia, havaitsemaan suuren määrän virhetilanteita. Jos tällainen tilanne ilmenee, RTL-kirjasto käynnistää ohjelman lopettamisen. Run-time error numero ja sen osoite, jossa virhe tapahtui, tulostetaan. Tämä on turvallisin ja halvin virheenkäsittely.


Vertailevia huomautuksia

Käännösajan virheet

Toisin kuin käännösaikaiset virheet, jotka kääntäjä havaitsee kääntämisen aikana, niin ajonaikaiset virheet riippuvat ohjelman tilasta, joten niitä ei voida ennakoida. Jos syntyy käännösaikainen virhe niin suoritettavaa ohjelmaa ei tule.

Poikkeukset

Ajonaikaiset virheet ovat klassinen välttämätön lähestymistapa, jotta vältetään epäjohdonmukaiset ohjelmatilat, jotka saattavat lopulta aiheuttaa ohjelman viallisen käyttäytymisen.

Jos mukana on FPC:n sysUtils unit niin kaikki ajonaikaiset virheet muuttuvat poikkeuksiksi. (kts. system.runTimeErrors yksityiskohdat). Toisin kuin ajonaikaiset virheet ne jotka voidaan ottaa kiinni try... except on... do ... end lohkoilla edellyttäen että käytetään poikkeuksia sallivia kääntäjän tiloja kuten{$mode ObjFPC} tai {$mode Delphi}. Ajonaikainen virhe saa ohjelman päättymään, kun taas poikkeusten käyttö voi antaa mahdollisuuden korjata ongelma. Standardin mukaisen system.runError

normaalia käyttäytymistä voidaan muuttaa määrittämällä ei-nil arvo system.errorProc:lle.

Katso myös