⊗pyPmExcInr 74 of 129 menu

Erandolukorrade sissejuhatus Pythonis

Selles jaotises käsitletakse erandolukordi Pythonis. Alustuseks tuleb mõista, mida need endast kujutavad.

Mis tahes programmi kirjutamisel eeldab arendaja vaikimisi, et kõik kasutatavad tarkvaralis-tehnilised mehhanismid töötavad korrektselt.

See siiski alati nii ei ole. Andmete edastamisel võrgu kaudu tekib ühenduse katkemine ja andmed jõuavad meieni ebakorrektsel kujul või ei jõua üldse. Faili kirjutamisel selgub, et kõvakettal meile eraldatud ruum on otsas ja faili ei saa kirjutada. Faili lugemisel selgub, et sellist faili ei eksisteeri ja meil pole seda kuskilt lugeda. Andmete printimisel printril katkeb printerit ja arvutit ühendav kaabel.

Kõigil kirjeldatud olukordadel on ühine asjatu: tekib mingi rike, mis viib kavandatud toimingu lõpuleviimise võimatuse või mõttetuseni.

Esinem ka olukordi, kus tekib mingi viga, mis ei ole rike. Näiteks küsite kasutajalt tema emaili, ja ta sisestab emaili vales vormingus. On selge, et meie programm ei saa emaili töötlemist jätkata, kuna see ei ole korrektne. Kuid sellest hoolimata ei ole tegemist erandolukorraga. Meie programm saab olukorda ise parandada: see kuvab veateate ja kasutaja kordab oma sisestust.

Tegelikult on piir rikke ja mitte rikke vahel üsna ebamäärane. Sündmus, mida üks programm võib tõlgendada kui erandolukorda, võib teine programm tõlgendada kui mingit viga, millega see suudab toime tulla.

Kriteerium on siin järgmine: kui probleemi tekkimisel suudab teie programm jätkata selle tegemist, milleks see on mõeldud, siis see ei ole erandolukord, kuid kui ei suuda, siis jah, see on erand.

Näiteks on meil programm, mis peab küsima kasutaja emaili. Kui kasutaja sisestas emaili vales vormingus - ei ole tegemist rikkega. See on oodatav probleem ja meie programm küsib kasutajalt emaili nii mitu korda, kuni ta sisestab selle korrektselt.

Oletame, et meie programm, mis küsib emaili, peab selle korrektse emaili ka interneti kaudu saatma. Sel juhul selgub, et internet ei tööta. See on juba probleem: programm ei saa mingil juhul interneti kaudu andmeid saata, kui internet ei tööta. Programm saab siiski oma täitmist jätkata: see võib kuvada teabe probleemist, korrata saatmiskatset mõne aja pärast jne. Kuid need tegevused ei ole päris see, milleks programm oli mõeldud, kuna põhitegevust - emaili saatmist - ei suuda programm teha.

Sellest lähtuvalt sõltub tõlgendus, mis käitumist peetakse normaalseks ja mis erandlikuks, väga sageli programmeerija ees seisvatest ülesannetest.

Eesti
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Me kasutame saidi toimimiseks, analüüsi ja personaliseerimiseks küpsiseid. Andmete töötlemine toimub vastavalt Privaatsuspoliitikale.
nõustu kõigega häälesta keeldu