Hjem Personlig finansiering Sådan håndterer du indlejrede undtagelser i Python - dummies

Sådan håndterer du indlejrede undtagelser i Python - dummies

Indholdsfortegnelse:

Video: Python Web Apps with Flask by Ezra Zigmond 2024

Video: Python Web Apps with Flask by Ezra Zigmond 2024
Anonim

Nogle gange skal du placere en undtagelseshåndteringsrutine inden for en anden i en proces kaldet nesting. Når du nester undtagelseshåndteringsrutiner, forsøger Python først at finde en undtagelseshåndterer i det indlejrede niveau og flytter derefter til de ydre lag. Du kan indhente undtagelseshåndteringsrutiner så dybt som nødvendigt for at gøre din kode sikker.

En af de mere almindelige grunde til at bruge et dobbeltlag af undtagelseshåndteringskode er, når du vil hente input fra en bruger og skal placere indtastningskoden i en loop for at sikre, at du rent faktisk får de nødvendige oplysninger. Følgende trin viser, hvordan denne type kode kan virke.

1Open et Python fil vindue.

Du ser en editor, hvor du kan skrive eksempelkoden.

2Type følgende kode i vinduet - tryk Enter efter hver linje:

TryAgain = True mens TryAgain: prøv: Værdi = int (input ("Skriv et helt tal.")) Undtagen ValueError: print skal skrive et helt tal!)) Prøv: DoOver = input ("Prøv igen (y / n)?") undtagen: print ("OK, se dig næste gang!") TryAgain = False else: if (str. DoOver) == "N"): TryAgain = False undtagen KeyboardInterrupt: print ("Du trykkede Ctrl + C!") Print ("Se dig næste gang!") TryAgain = False else: print (Value) TryAgain = False > Koden begynder ved at oprette en input loop. Brug af sløjfer til denne form for formål er faktisk ret almindelig i applikationer, fordi du ikke ønsker at programmet skal afslutte hver gang en inputfejl er lavet. Dette er et forenklet sløjfe, og normalt opretter du en separat funktion for at holde koden.

Når sløjfen starter, beder applikationen brugeren om at skrive et helt tal. Det kan være en heltalværdi. Hvis brugeren skriver en ikke-heltalværdi eller trykker på Ctrl + C, Cmd + C eller en anden afbrydelseskombination, overtager undtagelseshåndteringskoden. Ellers udskriver applikationen den værdi, som brugeren leverede, og sætter TryAgain til False, hvilket forårsager, at sløjfen slutter.

Der kan opstå en ValueError-undtagelse, når brugeren begår en fejl. Fordi du ikke ved, hvorfor brugeren indtaster den forkerte værdi, skal du spørge, om brugeren vil prøve igen. Selvfølgelig kan man få endnu en undtagelse fra at få mere input fra brugeren. Den indre prøve … undtagen kodeblok håndterer denne sekundære indgang.

Bemærk brugen af ​​str. øverste () funktion, når du får tegn input fra brugeren. Denne funktion gør det muligt at modtage y eller Y som input og acceptere dem begge. Når du spørger brugeren om indtastning af tegn, er det en god idé at konvertere små bogstaver til store bogstaver, så du kan udføre en enkelt sammenligning (reducere muligheden for fejl).

KeyboardInterrupt-undtagelsen viser to meddelelser og afslutter automatisk ved at indstille TryAgain til False. KeyboardInterrupt opstår kun, når brugeren trykker på en bestemt tastekombination, der er designet til at afslutte applikationen. Det er usandsynligt, at brugeren vil fortsætte med at bruge applikationen på dette tidspunkt.

3Vælg Kør → Køremodul.

Du ser et Python Shell vindue åbent. Ansøgningen beder brugeren om at indtaste et helt tal.

4Type Hej og tryk på Enter.

Programmet viser en fejlmeddelelse og spørger, om du vil prøve igen.

5Type Y og tryk på Enter.

Programmet beder dig indtaste et helt tal igen.

6Type 5. 5 og tryk på Enter.

Programmet viser igen fejlmeddelelsen igen og spørger, om du vil prøve igen.

7Tryk på Ctrl + C, Cmd + C eller en anden tastekombination for at afbryde applikationen.

Ansøgningen slutter. Bemærk, at meddelelsen er den fra den indvendige undtagelse. Ansøgningen kommer aldrig til den ydre undtagelse, fordi den indre undtagelseshåndterer giver generisk undtagelseshåndtering.

8Vælg Kør → Køremodul.

Du ser et Python Shell vindue åbent. Ansøgningen beder brugeren om at indtaste et helt tal.

9Tryk på Ctrl + C, Cmd + C eller en anden tastekombination for at afbryde applikationen.

Ansøgningen slutter. Bemærk, at meddelelsen er den fra den yderste undtagelse. I de prædike trin slutter brugeren programmet ved at trykke på en afbrydelsestast. Programmet anvender dog to forskellige undtagelseshåndterere til at løse problemet.

Sådan håndterer du indlejrede undtagelser i Python - dummies

Valg af editor

Hvad er Array Formulas i Excel 2013? - dummies

Hvad er Array Formulas i Excel 2013? - dummies

En matrixformel i Excel 2013 (og andre regneark) er en speciel formel, der opererer på en række værdier. Hvis et celleområde leverer dette interval (som det ofte er tilfældet), betegnes det som et arrayinterval. Hvis denne rækkevidde leveres af en liste over numeriske værdier, er de kendt som ...

Ved hjælp af regnearkfunktioner til statistisk analyse i Excel 2016 - dummies

Ved hjælp af regnearkfunktioner til statistisk analyse i Excel 2016 - dummies

Excel 2016b har en række funktioner til Statistisk analyse. Funktionsbiblioteket på fanen Formler viser alle kategorier af Excel-regnearkfunktioner. Trinene i at bruge et regneark funktion er Skriv dine data i et datarray og vælg en celle for resultatet. Vælg den relevante formelskategori og vælg en ...

Hvad er nyt i Excel 2016 til statistisk analyse? - dummies

Hvad er nyt i Excel 2016 til statistisk analyse? - dummies

Microsoft har lavet nogle få ændringer i Excel's Ribbon (fanebåndet øverst), hvilket afspejler ændringer i Excel. Den mest oplagte tilføjelse er pæren øverst til højre for tilføjelser. Det er mærket "Fortæl mig hvad du vil gøre. "Dette kaldes Tell Me-boksen, og det er nyt ...

Valg af editor

Sådan postes på en vens Facebook-tidslinje - dummies

Sådan postes på en vens Facebook-tidslinje - dummies

Dit nyhedsfeed trækker indlæg, som dine Facebook-venner lav på et sted, så du kan læse dem alle på én gang. Men nogle gange vil du læse alt om kun en person. Heldigvis er alle deres indlæg blevet samlet på deres tidslinjer. Tidslinjen er ligesom en nyhedsfeed alt om en person. ...

Sådan sender du en Facebook-begivenhed - dummies

Sådan sender du en Facebook-begivenhed - dummies

Den første måde du sikkert finder ud af om Facebook begivenheden er gennem en anmeldelse. Når en ven inviterer dig til en begivenhed, vises et lille rødt flag over meddelelsesikonet i den store blå bar øverst. Klik på ikonet for at åbne din underretningsmenu; Klik derefter på den invitation, der skal tages ...

Hvordan man kan se de billeder du er på Facebook - dummies

Hvordan man kan se de billeder du er på Facebook - dummies

Hvis du har meget af Facebook venner, du er sandsynligvis i et ton af fotos. Du kan se de billeder, du er i, uden at skulle gå hele Facebook, så længe du er mærket i dem. Måske har du tagget dem selv, eller dine venner har måske tagget dig. Det første sted du ...

Valg af editor

Digital SLR-fotografi Alt-i-One til Dummies Cheat Sheet - dummies

Digital SLR-fotografi Alt-i-One til Dummies Cheat Sheet - dummies

Hvis du 'er interesseret i fotografering, du finder ingen bedre enhed end en digital spejlreflekskamera (eller dSLR). Uanset om du er amatør eller professionel, kan du finde en dSLR, der passer til dine behov. Du kan virkelig ikke slå kombinationen af ​​magt, fleksibilitet, vækstpotentiale og "accessorize-ability" af en dSLR. Med oplysningerne i denne ...

Hvordan man tager gebyr som bryllupsfotograf - dummier

Hvordan man tager gebyr som bryllupsfotograf - dummier

Som bryllupsfotograf, dit job er at hjælpe De formelle portrætter flyder så jævnt som muligt. Du kan lægge meget af grunden i månederne før den faktiske bryllupsdato som du kommunikerer med parret. Hvis du gør dine lektier, kan du fokusere på at holde portræt sessioner organiseret og opretholde kontrol ...