Stundas uzdevums: Paredzēt lietotāja kļūdas, izstrādāt drošu ievades sistēmu un novērst programmas avārijas, izmantojot koda atkļūdošanas un validācijas metodes.
2.4.10. Veic programmas atkļūdošanu un testēšanu.70 min darba sadalījums: 1. uzdevums (~20 min) - atjauno teorijas piemēru vai minimālo prototipu; 2. uzdevums (~25 min) - pielieto to galvenajā uzdevumā; 3. uzdevums (~25 min) - pārbaudi rezultātu, izlabo kļūdas un tikai beigās pieraksti vienu secinājumu. Papildus/4. līmeņa uzdevums ir paredzēts tikai tad, ja pamatdarbs ir pabeigts.
Pirms sāc: izmanto iepriekš apgūto un šīs lapas teorijas/koda piemērus. Ja vajadzīga jauna komanda vai rīks, vispirms atrodi tās paraugu teorijas sadaļā.
Programmēšanā negaidītas kļūdas sauc par Exceptions (Izņēmumiem). Tā vietā, lai ļautu programmai "uzkārties", mēs šīs kļūdas pārtveram un apstrādājam.
try blokā rodas kļūda.# Īss kļūdu apstrādes paraugs
try:
vecums = int(input("Cik Tev gadu? "))
print(f"Tev ir {vecums} gadi.")
except ValueError:
print("Kļūda! Lūdzu, ievadi tikai ciparus.")
Šis ir īss iesildīšanās uzdevums. Nokopē sagatavi, ielīmē to pareizajā koda vietā un palaid. Šeit pietiek droši izmēģināt tēmu 3.4 Kļūdu apstrāde un validācija; detalizētu izpratni veidosi nākamajos uzdevumos.
Kopējamais piemērs vai sagatave: izmanto šo bloku kā starta punktu, nevis kā gala risinājumu.
# Īss kļūdu apstrādes paraugs
try:
vecums = int(input("Cik Tev gadu? "))
print(f"Tev ir {vecums} gadi.")
except ValueError:
print("Kļūda! Lūdzu, ievadi tikai ciparus.")
main.py failā un palaid no termināļa.Pievieno šīs stundas paņēmienu kā nelielu, strādājošu projekta daļu.
punkti, gajiens, atbilde, rezultats vai parbauda_ievadi().Pārbaudi, vai algoritms darbojas paredzami vairākās situācijās.
Ja pamatdarbs ir pabeigts, paplašini projektu ar vienu nelielu programmētu uzlabojumu.
except: bez norādīta kļūdas tipa, jo tas noķers pilnīgi visas kļūdas, pat tās, kas saistītas ar paša koda sintakses problēmām vai programmas piespiedu apturēšanu (Ctrl+C).
# Slikti:
except:
print("Notika kļūda.")
# Labi:
except ValueError:
print("Datu tipa kļūda.")
try liec tikai tās rindiņas, kas reāli var izraisīt norādīto kļūdu.
# Slikti:
try:
vards = input("Vārds: ") # Šeit ValueError nevar notikt
vecums = int(input("Vecums: "))
except ValueError:
print("Kļūda!")
# Labi:
vards = input("Vārds: ")
try:
vecums = int(input("Vecums: "))
except ValueError:
print("Kļūda!")
try/except bezgalīgajā ciklā, aizmirsīsi pielikt break veiksmīgas izpildes gadījumā, cikls turpināsies mūžīgi.while True:
try:
likme = float(input("Ievadi likmi: "))
# Validācijas loģika
if likme <= 0:
print("Likmei jābūt pozitīvai!")
continue # Sākam no jauna
# Ja viss ir pareizi, izejam no cikla
break
except ValueError:
print("Kļūda! Ievadi skaitli, izmantojot punktu (piem., 5.5).")
print(f"Likme {likme} pieņemta!")