Luchtbehandeling stelt ons in staat om het script door te laten lopen, zelfs als er een fout is.
Laten we een voorbeeld proberen om u te laten zien hoe we luchtbehandeling en python kunnen doen.
Laten we zeggen dat we een programma wilden maken waarmee we de invoer van een gebruiker kunnen opnemen.
Laten we zeggen dat we de gebruiker om een H vragen.
Dus we gebruiken de invoerprompt en zeggen: wat is uw leeftijd?
En dan, of we gaan het doen, print gewoon het mooie en eenvoudige programma als ik dit uitvoer.
En ik typ in, laten we zeggen, 10.
Daar ga je.
Alles werkt, maar wat als ik geen nummer heb ingevoerd en ik ga zo?
Nou, dat werkt nog steeds, maar is dat wat ik met mijn programma wilde doen, misschien wilde ik de leeftijd invoeren en berekenen
of ze het spel niet kunnen spelen of niet, of ze 18 jaar of ouder zijn, hoe kunnen we dit oplossen
deze?
Wel, een ding dat we kunnen doen is dit gewoon in een ENT te verpakken, goed, dus we zetten alles wat de gebruiker
ons geeft om in een geheel getal, zodat als ik dit uitvoer.
En ik typ dit.
Oh, ik krijg een foutmelding, een waardefout ongeldig litoral voor int, ik probeer te converteren.
Dit in een geheel getal, maar het zegt me dat het een fout is, dat kan ik niet doen.
Dus hoe kunnen we dit oplossen met foutafhandeling in Python?
We kunnen het op deze manier doen.
We hebben de tri-loops, we hebben het tri-toetsenbord, dat zegt, hey, ik wil dat je dit stukje code probeert en we moeten ervoor zorgen
dat we het hebben uitgevonden.
Dus we proberen dit stukje code.
Nu, alles wat er in het tri-blok gebeurt.
Ik kan het aan.
Zie waar de afhandeling vandaan komt, gebieden met het trefwoord accepteren.
En accepteren.
Zegt, hé.
Als er iets in het tri-blok zit, als er iets uit komt, wil ik dat je iets zegt.
Dus in plaats van die rode lucht die uit het programma komt, moet je iets anders doen.
Doe dit.
Dus ik ga zeggen.
Afdrukken, vul a.u.b. een nummer in.
Laten we kijken wat er nu gebeurt.
Als ik klik, ren dan weg.
Wat is mijn leeftijd?
Ik ga gewoon wartaal schrijven.
En kijk eens aan, ik krijg gelieve een nummer in te voeren.
Ik behandel mijn fouten hier door al mijn code in een try-blok te verpakken, zodat ik Basehead mijn hele bestand hierheen had kunnen kopiëren
en in een try-blok had kunnen plaatsen.
En wat er gaat gebeuren is dat in plaats van dat mijn programma wordt uitgezonden voordat mijn programma crasht, het deze code
gaat uitvoeren en dan zal het zeggen, hey, als er binnen dit blok iets gebeurt, zullen we het hier binnenhalen
met het behalve blok .
En ik kan horen.
Doe wat ik wil in mijn geval, ik kan zeggen, hey, vul alsjeblieft ons nummer in, maar we hebben hier ons probleem,
toch?
Het programma is net afgelopen en we willen dat dit blijft draaien.
Ik moet weer rennen en nogmaals om de H vragen.
Dus hoe kunt u ervoor zorgen dat we dit blijven uitvoeren totdat die gebruiker daadwerkelijk iets eerlijk invoert?
We hebben dit eerder gezien, we kunnen een while-lus maken en zeggen while true.
Ron, dit.
En of dit werkt.
Nou, dat gaan we doen.
Hopelijk krijg je de H, laten we eens kijken dat als ik klik op rennen mijn leeftijd was, laten we zeggen.
Nee, vul a.u.b. een nee in wat is uw leeftijd?
Laten we proberen het opnieuw te doorbreken.
Nee, vul alstublieft ons nummer in.
Oké, prima.
Mijn leeftijd is 10.
Alsjeblieft, ik krijg de naam 10, maar, oh, het is nog steeds de vraag wat mijn leeftijd is.
In het ideale geval wil ik uit deze ware verklaring breken, toch, dus hoe kan ik dat doen?
Nou, ik kan gebruiken wat we hier noemen en anders blokkeren, wat we eerder hebben gezien.
Maar dit werkt met een try-behalve-blok.
We zetten het op het einde.
Er staat, hé, probeer dit eens.
Als er niemand is, doe dit dan.
Als er echter nergens anders is, doe dit dan.
Dus in ons geval kunnen we gewoon pauze zeggen.
En weet je wat, we kunnen zelfs een bedankje afdrukken, zodat we aardig zijn als ik dit stop en weer wegloop.
En ik geef ze mijn leeftijd.
Daar ga je.
We zijn klaar, we zijn uit de lus gesprongen en alles is goed.
En dit blok met drie uitzonderingen kan overal naartoe, we kunnen ons hele bestand in een try-behalve-blok inpakken, we kunnen
het gewoon toevoegen aan onze functies binnen onze afzonderlijke functies.
Wat we willen, kunnen we gebruiken.
Dit is gewoon een ander hulpmiddel dat Python ons geeft om met Eres om te gaan.
Maar laat me je iets vragen.
Wat als ik deed in plaats van te printen, wat ik deed, laten we zeggen tien gedeeld door de leeftijd?
Als ik mijn programma uitvoer.
En ik typ hier nul en ik ga naar binnen.
Oh, ik kom daar binnen, voer een nummer in, maar ik heb een nummer ingevoerd.
Dit is een programma met fouten, hoewel ik een nummer typ, krijg ik nog steeds dezelfde foutmelding.
Dus hoe pakken we dit aan?
Hoe gaan we om met verschillende fouten, een waarbij het een waardefout is en een andere die duidelijk
een nuldelingsfout is?
Welnu, in het behalve-blok kan ik het gewoon geven welk type fout ik wil afhandelen en onthouden, deze zijn hier ingebouwde fouten
die ik gewoon kan kopiëren en plakken.
Dus in mijn geval wil ik zeggen dat dit voor een waardefout is, zodat als ik mijn programma uitvoer.
En ik typ nul.
Oh, ik krijg mijn lucht, dit behalve blok accepteert alleen taxateurs, andere fouten maakt het niet uit.
Hm.
Dus wat kunnen we hier doen?
Welnu, een optie is om hier te kopiëren en te zeggen, hey, laten we er nog een toevoegen,
behalve en in dit geval wil ik een nuldelingsfout in het geval dat een gebruiker nul invoert, je kunt zeggen, voer een leeftijd hoger dan nul in.
Zodat als ik dit nu uitvoer.
En ik doe weer nul, voer alsjeblieft hoger in dan nul als ik wat gebrabbel doe, oeps, als ik wat gebrabbel krijg, voer dan een
nummer in als ik eindelijk een nummer invoer.
Moet je zien.
Dank u.
Alles werkt.
Nu, hier is mijn vraag, wat gebeurt er als we binnenkomen?
Een andere waardefout hier en deze waardefout gaat alleen maar uitroeptekens zeggen.
Wat gebeurt er nu?
Ik krijg alstublieft een nummer invoeren, want dit behalve blok gaat maar één keer lopen, zodra het de lucht vangt, zoekt
het naar het gaat lopen.
En kom dan terug naar de draadlus.
Dus slechts één van de erfgenamen wordt gepakt.
Oké, laten we een pauze nemen en meer leren over luchtbehandeling in de volgende video.
Doei.