Sådan bruges bedst prøv undtagen i Python – især for begyndere
i Python-programmering tillader undtagelseshåndtering en programmør at aktivere strømningskontrol. Og det har ingen. af indbyggede undtagelser for at fange fejl, hvis din kode går i stykker. Brug af try-undtagen er den mest almindelige og naturlige måde at håndtere uventede fejl sammen med mange flere undtagelseshåndteringskonstruktioner. I denne tutorial får du udforske nogle af de bedste teknikker til at bruge try-undtagen i Python.
fejlhåndtering eller undtagelseshåndtering i Python kan håndhæves ved at oprette undtagelser. Ved hjælp af en prøveblok kan du implementere en undtagelse og håndtere fejlen i en undtagen blok. Når koden går i stykker inde i en prøveblok, stopper den regelmæssige kodestrøm, og kontrollen skiftes til undtagen-blokken til håndtering af fejlen.
Læs også – Lær Python Undtagelse Håndtering fra bunden.
hvorfor bruge try-undtagen / Try-undtagen-else Klausul? Ved hjælp af prøv-undtagen og prøv-undtagen-ellers kan du undgå mange ukendte problemer, der kan opstå fra din kode. For eksempel kan Python-koden ved hjælp af lbyl (se før du springer) stil føre til race betingelser. Her, prøv-undtagen klausul kan komme til at redde dig. Der er også tilfælde, hvor din kode afhænger kritisk af nogle oplysninger, der kan blive forældede indtil det tidspunkt, du modtager det. For eksempel koden gør opkald til os.sti.eksisterer eller kø.fuld kan mislykkes, da disse funktioner muligvis returnerer data, der bliver forældede, når du bruger dem. Det klogere valg her ville være at følge try-undtagen-else-stilen i din kode for at styre ovenstående tilfælde mere pålideligt.
at hæve undtagelser er også tilladt i Python. Det betyder, at du kan kaste eller hæve en undtagelse, når det er nødvendigt. Du kan gøre det ved blot at ringe fra din kode. Når den er hævet, stopper undtagelsen den aktuelle udførelse som normalt og går længere op i opkaldsstakken, indtil den håndteres.
hvorfor bruge undtagelser? De hjælper ikke kun med at løse populære problemer som raceforhold, men er også meget nyttige til at kontrollere fejl i områder som sløjfer, filhåndtering, databasekommunikation, netværksadgang og så videre.
derfor dækker vi bredere problemer og leverer løsninger i dette indlæg. Bemærk, at undtagelseshåndtering er en kunst, der giver dig enorme kræfter til at skrive robust og kvalitetskode. Så, klammeparentes at læse nogle keynotes om undtagelser sammen med de bedste måder at håndtere dem.
skal læse – alt hvad du bør vide om Python Copy File .
Python: Tips til brug af Prøv-undtagen, prøv-undtagen-ellers og mere
- Sådan bruges bedst prøv-undtagen i Python
- Sådan bruges prøv-undtagen i Python
- Sådan bruges prøv-undtagen i Python
- Fang flere undtagelser i en undtagen blok
- håndtering af flere undtagelser med en undtagen blok
- genoptagelse af undtagelser i Python
- hvornår skal du bruge else-klausulen
- gør brug af
- brug as-nøgleordet til at fange specifikke Undtagelsestyper
- bedste praksis til manuelt at hæve undtagelser
- Sådan springer du gennem fejl og fortsætter udførelsen
- mest almindelige undtagelsesfejl i Python
- eksempler på mest almindelige undtagelser i Python
1. Sådan håndteres en vilkårlig undtagelse
Nogle gange har du muligvis brug for en måde at tillade enhver vilkårlig undtagelse på og vil også være i stand til at vise fejl-eller undtagelsesmeddelelsen.
det er let opnåeligt ved hjælp af Python undtagelser. Tjek nedenstående kode. Under test kan du placere koden inde i prøveblokken i nedenstående eksempel.
try: #your codeexcept Exception as ex: print(ex)
Tilbage til toppen
2. Fang flere undtagelser i en undtagen blok
Du kan fange flere undtagelser i en enkelt undtagen blok. Se nedenstående eksempel.
except (Exception1, Exception2) as e: pass
bemærk, at du kan adskille undtagelserne fra variablen med et komma, der gælder i Python 2.6/2.7. Men du kan ikke gøre det i Python 3. Så du bør foretrække at bruge nøgleordet.
Tilbage til toppen
3. Håndtering af flere undtagelser med en undtagen blok
der er mange måder at håndtere flere undtagelser på. Den første af dem kræver at placere alle de undtagelser, der sandsynligvis vil forekomme i form af en tupel. Se nedenunder.
try: file = open('input-file', 'open mode')except (IOError, EOFError) as e: print("Testing multiple exceptions. {}".format(e.args))
den næste metode er at håndtere hver undtagelse i en dedikeret undtagen blok. Du kan tilføje så mange undtagen blokke efter behov. Se nedenstående eksempel.
try: file = open('input-file', 'open mode')except EOFError as ex: print("Caught the EOF error.") raise exexcept IOError as e: print("Caught the I/O error.") raise ex
sidst men ikke mindst er at bruge undtagen uden at nævne nogen undtagelsesattribut.
try: file = open('input-file', 'open mode')except: # In case of any unhandled error, throw it away raise
denne metode kan være nyttig, hvis du ikke har nogen anelse om undtagelsen muligvis kastet af dit program.
Tilbage til toppen
4. Genoptagelse af undtagelser i Python
undtagelser, når de er hævet, fortsætter med at bevæge sig op til opkaldsmetoderne, indtil de håndteres. Selvom du kan tilføje en undtagen klausul, som bare kunne have et opkald uden noget argument. Det vil resultere i reraising undtagelsen.
se nedenstående eksempelkode.
try: # Intentionally raise an exception. raise Exception('I learn Python!')except: print("Entered in except.") # Re-raise the exception. raise
udgang:
Entered in except.Traceback (most recent call last): File "python", line 3, in <module>Exception: I learn Python!
Tilbage til toppen
5. Hvornår skal du bruge else-klausulen
brug en else-klausul lige efter forsøget-undtagen blok. Else-klausulen vil kun blive ramt, hvis ingen undtagelse kastes. Den anden erklæring skal altid gå forud for undtagen blokke.
i else blocks kan du tilføje kode, som du vil køre, når der ikke opstod fejl.
se nedenstående eksempel. I denne prøve kan du se et stykke tid loop kører uendeligt. Koden beder om brugerinput og analyserer den derefter ved hjælp af den indbyggede funktion. Hvis brugeren indtaster en nulværdi, bliver den undtagen blok ramt. Ellers vil koden strømme gennem den anden blok.
while True: # Enter integer value from the console. x = int(input()) # Divide 1 by x to test error cases try: result = 1 / x except: print("Error case") exit(0) else: print("Pass case") exit(1)
Tilbage til toppen
6. Gør brug af
Hvis du har en kode, som du ønsker at køre i alle situationer, derefter skrive det inde i . Python vil altid køre instruktionerne kodet i . Det er den mest almindelige måde at gøre rydde op opgaver. Du kan også sørge for, at oprydningen kommer igennem.
en fejl er fanget af prøveklausulen. Efter koden i undtagen blok bliver henrettet, instruktionerne i ville køre.
bemærk, at a altid kører, selvom du er vendt tilbage foran det.
se nedenstående eksempel.
try: # Intentionally raise an error. x = 1 / 0except: # Except clause: print("Error occurred")finally: # Finally clause: print("The is hit")
udgang:
Error occurredThe is hit
Tilbage til toppen
7. Brug as-nøgleordet til at fange specifikke undtagelsestyper
ved hjælp af as <identifier> kan du oprette et nyt objekt. Og du kan også undtagelsen objekt. Her, nedenstående eksempel, opretter vi ioerror-objektet og bruger det derefter inden for klausulen.
try: # Intentionally raise an error. f = open("no-file")except IOError as err: # Creating IOError instance for book keeping. print("Error:", err) print("Code:", err.errno)
udgang:
('Error:', IOError(2, 'No such file or directory'))('Code:', 2)
Tilbage til toppen
8. Bedste praksis for manuelt at hæve undtagelser
undgå at hæve generiske undtagelser, fordi hvis du gør det, skal alle andre mere specifikke undtagelser også fanges. Derfor er den bedste praksis at rejse den mest specifikke undtagelse tæt på dit problem.
dårligt eksempel.
def bad_exception(): try: raise ValueError('Intentional - do not want this to get caught') raise Exception('Exception to be handled') except Exception as error: print('Inside the except block: ' + repr(error)) bad_exception()
Output:
Inside the except block: ValueError('Intentional - do not want this to get caught',)
bedste praksis:
Her rejser vi en bestemt type undtagelse, ikke en generisk. Og vi bruger også args-indstillingen til at udskrive de forkerte argumenter, hvis der er nogen. Lad os se nedenstående eksempel.
try: raise ValueError('Testing exceptions: The input is in incorrect order', 'one', 'two', 'four') except ValueError as err: print(err.args)
udgang:
('Testing exceptions: The input is in incorrect order', 'one', 'two', 'four')
Tilbage til toppen
9. Sådan springer du gennem fejl og fortsætter udførelsen
ideelt set bør du ikke gøre dette. Men hvis du stadig vil gøre det, skal du følge nedenstående kode for at tjekke den rigtige tilgang.
try: assert Falseexcept AssertionError: passprint('Welcome to Prometheus!!!')
Output:
Welcome to Prometheus!!!
Tilbage til toppen
se nu på nogle af de mest almindelige Python-undtagelser og deres eksempler.
mest almindelige undtagelsesfejl
- IOError – det forekommer på fejl som en fil ikke åbnes.ImportError-hvis et python-modul ikke kan indlæses eller findes.
- ValueError – det opstår, hvis en funktion får et argument af den rigtige type, men en upassende værdi.
- KeyboardInterrupt – det bliver ramt, når brugeren indtaster interrupt-tasten (dvs.Control – C eller Del-tasten)
- EOFError-det bliver hævet, hvis inputfunktionerne (input()/ra_input()) rammer en end-of-file-tilstand (EOF), men uden at læse nogen data.
Tilbage til toppen
eksempler på mest almindelige undtagelser
except IOError:print('Error occurred while opening the file.')except ValueError:print('Non-numeric input detected.')except ImportError:print('Unable to locate the module.')except EOFError:print('Identified EOF error.')except KeyboardInterrupt:print('Wrong keyboard input.')except:print('An error occurred.')
Tilbage til toppen
oversigt – hvordan man bedst bruger prøv-undtagen i Python
under programmering er fejl bundet til at ske. Det er en kendsgerning, som ingen kan ignorere. Og der kan være mange grunde til fejl som dårlig brugerinput, utilstrækkelig filtilladelse, utilgængelighed af en netværksressource, utilstrækkelig hukommelse eller sandsynligvis programmørens fejl.
alligevel kan alt dette håndteres, hvis din kode bruger undtagelseshåndtering og implementerer den med konstruktioner som prøv-undtagen eller tr-undtagen-ellers, prøv-undtagen-endelig. Håber, du ville have nydt at læse ovenstående tutorial.
Hvis du kunne lide indlægget, så gå ikke glip af at dele det med venner og på sociale medier (facebook/Kvidre).
bedste,
TechBeamers.
- Sådan bruges prøv-undtagen i Python