Inhaltsverzeechnes[Verstoppen][Show]
Dëse Virtrag wäert wichteg sinn wann Dir mat grousse Programmer ze dinn hutt.
Dir léiert d'Feeler duerch Ausnamblocken ze handhaben an d'Kommentaren am Python ze benotzen.
Exceptiounen
Mir léiere wéi ee Feeler a Python Programmer behandelt. Loosst eis ufänken mat engem klenge Programm ze schreiwen fir den Alter vum Benotzer vum Terminal ze kréien.
age = int(input('Age'))
print(age)
Loosst eis et lafen.
Elo kuckt den Ausgangscode vun dësem Programm. Exit Code 0 heescht datt eise Programm erfollegräich ofgeschloss ass an et goufe keng Feeler. Awer wat wa mir dëse Programm nach eng Kéier lafen an amplaz en numeresche Wäert anzeginn, gi mir eng String aginn?
Mir kréien e Wäertfehler mat sengem Message "ongëlteg wuertwiertlech fir int () mat Basis 10" Am Prinzip, wat dëse Message eis seet, ass datt dës String "qwe" keng valabel Heemnummer enthält, déi an eng ganz Zuel ëmgewandelt ka ginn. Elo kuckt den Ausgangscode vun dësem Programm. Ausgangscode 1 heescht datt eisen Ausgangscode erofgefall ass, also 0 heescht ëmmer Erfolleg an alles anescht wéi 0 heescht Crash. An der Programméierung bezeechne mir dës Aart vu Feeler als Ausnam.
Als gudde Python Programméierer sollt Dir dës Situatioun viraussoen. Dir wëllt Äre ganze Programm net ofbriechen just well de Benotzer en ongültege Wäert aginn huet. Also amplaz datt de Programm ofbriechen, sollt Dir d'Situatioun handhaben an eng richteg Fehlermeldung drécken. Dat wäert ech Iech an dësem Virtrag weisen.
Am Python hu mir e Konstrukt genannt try except
benotzt fir Feeler Situatiounen ze këmmeren.
try:
age = int(input('Age'))
print(age)
Dës zwou Zeilen vum Code sinn Deel vun eisem try:
blockéieren. Mir addéieren except
Spär duerno mat der Aart vu Feeler, déi mir erwaarden.
except ValueError:
print('Invalid Value')
Et gëtt elo d'String "Invalid Value" am Fall vun engem Wäertfehler zréck.
Loosst eis eng aner Aart vu Feeler iwwerpréiwen andeems Dir de fréiere Programm ännert.
try:
age = int(input('Age'))
income = 20000
risk = income / age
print(age)
except ValueError:
print('Invalid Value')
Elo, wa mir dëse Programm lafen an '0' am Alter aginn, en numeresche Wäert. Dofir sollte mir technesch keng Ausnahmen kréien.
Loosst eis et lafen.
Kuck dir daat mol un. Eise Programm ass erofgefall a mir hunn en "Zero Division Error" gemaach, well mir kënnen eng Zuel net mat 0 deelen. Kuckt nach eng Kéier den Ausgangscode. Mir konnten dës Aart vu Feeler oder dës Zort Ausnam net mat dësem Ausnamblock opfänken.
Dëst ausser Block fënnt nëmmen Ausnahmen vum Typwäertfehler a mir brauche en neien ausser Block fir Zero Division Error ze handhaben. Loosst eis de Programm deementspriechend änneren.
try:
age = int(input('Age'))
income = 20000
risk = income / age
print(age)
except ZeroDivisionError:
print('Age cannot be 0')
except ValueError:
print('Invalid Value')
De Problem ass geléist!
- Syntaxfehler
- Typerror
- Numm Feeler
- Indexfehler
- Wäerterror
- Nulldivision Feeler
- Attributererror
- Runtime Feeler
- Schlësselfehler
- Erënnerung Feeler
- Assertionerror
- Indentationerror
- Eoferror
- Floatingpointerror
- Overflowerror
- Logesche Feeler
- Systemfehler
- Notimplementéierterror
- Feeler
- Ierror
- Referenzfehler
- Unicode Feeler
- Arithmetesche Feeler
- Unicodedecode Feeler
- Unicodeencode Feeler
- Unicode Iwwersetzer Feeler
- Runtime Feeler
Als Programméierer sollt Dir all Ausnamen an Ärem Programm bewosst sinn an Dir sollt se deementspriechend handelen.
Comments
Elo wäerte mir iwwer Kommentaren am Python schwätzen. Mir benotze Kommentarer fir Notizen oder Kommentarer zu eise Programmer ze addéieren fir d'Liesbarkeet ze verbesseren an e Message un een ze vermëttelen deen eise Code liest.
Kommentare kënnen am Programm geschriwwe ginn mat dem # Zeechen. Alles wat Dir schreift nom # gëtt vum Python Compiler ignoréiert a gëtt net ausgefouert. Dir kënnt Kommentaren op eenzel Zeilen an och no enger Zeil vum Code derbäisetzen.
Mat dëse Kommentare kënne mir eppes iwwer eise Code erklären, mir kënnen se als Erënnerung benotze fir Saachen ze fixéieren oder d'Saachen ze klären, oder mir kënne se benotze fir Saachen mat aneren Entwéckler ze kommunizéieren déi eise Code liesen oder ze erklären firwat mir dëse Code geschriwwen hunn eng gewësse Manéier. Dëst si gutt Benotzungsfäll fir Kommentarer ze benotzen. mir kënnen och Kommentaren iwwer verschidde Linnen hunn. All Zeil soll mat engem neien # Zeechen ufänken. Elo eng Saach déi Dir musst vermeiden wann Dir Kommentarer benotzt, ass z'erklären wat de Code mécht.
Hei ass e Beispill vun engem schlechten Kommentar:
Dëst ass e schlechte Kommentar well et mir dat offensichtlech seet. Et seet mir datt déi nächst Zeil "Sonn ënnergeet am Westen" drécke wäert. Elo ass de Problem mat dësem Kommentar datt ausser verbose a repetitiv ze sinn wann Dir hei kommt a West op Ost ännert, gëtt dëse Kommentar veroudert. Also, all Kéier wann mir eise Code aktualiséieren, musse mir zréckkommen an de entspriechende Kommentar änneren.
Kuerz gesot, benotzt Är Kommentarer fir ze beäntweren wéi a firwat ass amplaz wat ass.
Hei ass e Beispill vun engem gudde Kommentar:
Am éischte Kommentar erënneren ech mech drun datt ech dësen Akommeswäert muss aktualiséieren ier de Programm finaliséiert gëtt an den zweete Wäert seet aner Entwéckler déi mäi Code liesen datt all Feeler net an dësem Programm gehandhabt ginn.
Schlussendlech sollt Dir iwwerflësseg Kommentarer vermeiden an Är Kommentarer sollten e Wäert op Äre Code addéieren.
Apaken!
Ausnahmen a Kommentarer sinn zwee Aspekter vun der Programméierung déi dacks iwwersinn an hir Bedeitung ass normalerweis ënnerbewäert.
Äre Programm Crashen ass bal esou schlecht wéi net op Äre Code kommentéieren wou néideg. Déi nächst Virliesung konzentréiert sech op Klassen a Konstrukteuren.
Hannerlooss eng Äntwert