hoe het beste te gebruiken Try Except in Python-vooral voor Beginners

in Python programmeren kan een programmeur flow control inschakelen. En het heeft geen. van ingebouwde uitzonderingen om fouten te vangen in het geval uw code breekt. Met behulp van Try-except is de meest voorkomende en natuurlijke manier van het omgaan met onverwachte fouten, samen met veel meer uitzondering handling constructies. In deze tutorial kunt u enkele van de beste technieken verkennen om try te gebruiken-behalve in Python.

foutafhandeling of Exceptionafhandeling in Python kan worden afgedwongen door uitzonderingen in te stellen. Met behulp van een try block, kunt u een uitzondering implementeren en de fout in een behalve blok verwerken. Wanneer de code breekt in een try block, de reguliere code stroom zal stoppen en de controle zal krijgen overgeschakeld naar de behalve blok voor het verwerken van de fout.

Lees-leer ook Python Exception Handling from Scratch.

waarom de try-Except/try-Except-else-Clausule gebruiken? Met de hulp van try-except en TRY-except-else, kunt u voorkomen dat veel onbekende problemen die kunnen voortvloeien uit uw code. Bijvoorbeeld, de Python code met behulp van lbyl (kijk voordat je springt) stijl kan leiden tot race voorwaarden. Hier, de try-except clausule kan komen om u te redden. Ook, er zijn gevallen waarin uw code is kritisch afhankelijk van wat informatie die zou kunnen krijgen verouderd tot de tijd dat u het ontvangt. Bijvoorbeeld, de code die oproepen naar os.pad.bestaat of wachtrij.full kan mislukken omdat deze functies gegevens kunnen retourneren die verouderd zijn tegen de tijd dat u het gebruikt. De wijzere keuze hier zou zijn om de try-except-else stijl in uw code te volgen om de bovenstaande gevallen betrouwbaarder te beheren.

uitzonderingen maken is ook toegestaan in Python. Het betekent dat u kunt gooien of verhogen van een uitzondering wanneer het nodig is. U kunt het gewoon doen door te bellen vanuit uw code. Eenmaal verhoogd, zal de uitzondering de huidige uitvoering stoppen zoals gebruikelijk en zal verder omhoog gaan in de call stack totdat afgehandeld.

waarom uitzonderingen gebruiken? Ze helpen niet alleen bij het oplossen van populaire problemen zoals raceomstandigheden, maar zijn ook erg handig bij het beheersen van fouten in gebieden zoals loops, bestandsafhandeling, database communicatie, netwerktoegang en ga zo maar door.

daarom zullen we bredere problemen behandelen en oplossingen bieden in dit bericht. Houd er rekening mee dat exception handling is een kunst die je enorme bevoegdheden om robuuste en kwaliteit code te schrijven brengt. Dus, brace om te lezen een aantal keynotes op Uitzonderingen samen met de beste manieren om ze te behandelen.

moet lezen-alles wat u moet weten over Python Copy File .

Python: Tips om Try-Except, try-Except-Else, and More te gebruiken

Hoe gebruik je Try-Except in Python
Hoe gebruik je Try-Except in Python
  • Hoe gebruik je een willekeurige uitzondering
  • vang meerdere uitzonderingen in één behalve blok
  • omgaan met meerdere uitzonderingen met één behalve blok
  • re-raising uitzonderingen in Python
  • wanneer de else-clausule moet worden gebruikt
  • gebruik
  • gebruik het trefwoord als Om specifieke uitzonderingen te vangen
  • beste praktijk voor handmatig raising uitzonderingen
  • Hoe fouten overslaan en doorgaan met uitvoeren
  • meest voorkomende uitzonderingen in Python
  • voorbeelden van meest voorkomende uitzonderingen in Python

1. Hoe om te gaan met een willekeurige uitzondering

soms hebt u een manier nodig om een willekeurige uitzondering toe te staan en wilt u ook het fout-of uitzonderingsbericht kunnen weergeven.

Het is gemakkelijk haalbaar met behulp van de Python-uitzonderingen. Controleer de onderstaande code. Tijdens het testen kunt u de code in het try-blok in het onderstaande voorbeeld plaatsen.

try: #your codeexcept Exception as ex: print(ex)

Back to top

2. Vang meerdere uitzonderingen in één behalve blok

u kunt meerdere uitzonderingen in een enkel behalve blok vangen. Zie het onderstaande voorbeeld.

except (Exception1, Exception2) as e: pass

houd er rekening mee dat u de uitzonderingen van de variabele kunt scheiden met een komma die van toepassing is in Python 2.6/2.7. Maar je kunt het niet doen in Python 3. Zo, moet u de voorkeur aan het trefwoord te gebruiken.

terug naar boven

3. Meerdere uitzonderingen behandelen met één behalve blok

Er zijn veel manieren om meerdere uitzonderingen af te handelen. De eerste vereist het plaatsen van alle uitzonderingen die zich kunnen voordoen in de vorm van een tupel. Zie hieronder.

try: file = open('input-file', 'open mode')except (IOError, EOFError) as e: print("Testing multiple exceptions. {}".format(e.args))

de volgende methode is om elke uitzondering in een specifiek behalve blok af te handelen. U kunt zo veel behalve blokken toe te voegen als nodig is. Zie het onderstaande voorbeeld.

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

de laatste maar niet de minste is het gebruik van de uitzondering zonder vermelding van een uitzondering attribuut.

try: file = open('input-file', 'open mode')except: # In case of any unhandled error, throw it away raise

Deze methode kan nuttig zijn als u geen idee hebt van de uitzondering die mogelijk door uw programma wordt gemaakt.

terug naar boven

4. Re-raising exceptions in Python

Exceptions once raised blijven doorgaan naar de aanroepende methoden totdat deze afgehandeld zijn. Hoewel je een uitzondering clausule kunt toevoegen die gewoon een call kan hebben zonder enig argument. Het zal resulteren in een heruitgave van de uitzondering.

zie de onderstaande voorbeeldcode.

try: # Intentionally raise an exception. raise Exception('I learn Python!')except: print("Entered in except.") # Re-raise the exception. raise

Output:

Entered in except.Traceback (most recent call last): File "python", line 3, in <module>Exception: I learn Python!

Back to top

5. Wanneer de Else-clausule

gebruikt u een else-clausule direct na het try-except-blok. De Else clausule zal alleen worden geraakt als er geen uitzondering wordt gegooid. Het else statement moet altijd voorafgaan aan de behalve blokken.

In else-blokken kunt u code toevoegen die u wilt uitvoeren als er geen fouten zijn opgetreden.

zie het onderstaande voorbeeld. In dit voorbeeld kun je een while loop oneindig zien lopen. De code vraagt om input van de gebruiker en vervolgens ontleden met behulp van de ingebouwde functie. Als de gebruiker een nulwaarde invoert, wordt het behalve-blok geraakt. Anders zal de code door het else-blok stromen.

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)

terug naar boven

6. Maak gebruik van

als je een code hebt die je in alle situaties wilt draaien, schrijf het dan in de . Python zal altijd de instructies gecodeerd in de uitvoeren . Het is de meest voorkomende manier van het doen van opruimen taken. Je kunt er ook voor zorgen dat de schoonmaak erdoor komt.

een fout wordt opgevangen door de try-clausule. Nadat de code in het behalve blok wordt uitgevoerd, de instructies in de zou draaien.

houd er rekening mee dat a altijd zal draaien, zelfs als u eerder bent teruggekeerd.

zie het onderstaande voorbeeld.

try: # Intentionally raise an error. x = 1 / 0except: # Except clause: print("Error occurred")finally: # Finally clause: print("The is hit")

uitvoer:

Error occurredThe is hit

terug naar boven

7. Gebruik het sleutelwoord As om specifieke uitzonderingen te vangen

met behulp van as <identifier> kunt u een nieuw object aanmaken. En je kunt ook het exception object. Hier, het onderstaande voorbeeld, maken we het ioerror object en gebruiken het vervolgens binnen de clausule.

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)

Output:

('Error:', IOError(2, 'No such file or directory'))('Code:', 2)

Back to top

8. Best practice for manual raising exceptions

vermijd het verhogen van generieke uitzonderingen, want als je dat doet, dan moeten alle andere meer specifieke uitzonderingen ook worden gevangen. Vandaar, de beste praktijk is om de meest specifieke uitzondering dicht bij uw probleem aan de orde te stellen.

slecht voorbeeld.

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',)

Best Practice:

Hier wordt een specifiek type uitzondering aangeroerd, niet een generieke. En we gebruiken ook de args optie om de onjuiste argumenten af te drukken als die er zijn. Laten we het onderstaande voorbeeld bekijken.

try: raise ValueError('Testing exceptions: The input is in incorrect order', 'one', 'two', 'four') except ValueError as err: print(err.args)

Output:

('Testing exceptions: The input is in incorrect order', 'one', 'two', 'four')

Back to top

9. Hoe fouten over te slaan en door te gaan met uitvoeren

idealiter zou u dit niet moeten doen. Maar als je nog steeds wilt doen, volg dan de onderstaande code om de juiste aanpak te bekijken.

try: assert Falseexcept AssertionError: passprint('Welcome to Prometheus!!!')

Output:

Welcome to Prometheus!!!

terug naar boven

bekijk nu enkele van de meest voorkomende Python-uitzonderingen en hun voorbeelden.

meest voorkomende uitzondering fouten

  • IOError – het treedt op bij fouten zoals een bestand niet kan openen.
  • ImportError-als een python-module niet geladen of gelokaliseerd kan worden.
  • ValueError-het treedt op als een functie een argument van het juiste type maar een ongepaste waarde krijgt.
  • KeyboardInterrupt – het wordt geraakt wanneer de gebruiker de interrupt sleutel invoert (bijvoorbeeld Control-C of Del key)
  • EOFError – het wordt verhoogd als de input functies (input ()/raw_input ()) een end-of-file conditie (EOF) raken maar zonder gegevens te lezen.

terug naar boven

voorbeelden van meest voorkomende uitzonderingen

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.')

terug naar boven

samenvatting – hoe het beste te gebruiken Try-behalve in Python

tijdens het programmeren zijn er fouten nodig. Het is een feit dat niemand kan negeren. En er kunnen veel redenen zijn voor fouten, zoals slechte gebruikersinvoer, onvoldoende bestandsrechten, de onbeschikbaarheid van een netwerkbron, onvoldoende geheugen of hoogstwaarschijnlijk de fout van de programmeur.

hoe dan ook, dit alles kan worden afgehandeld als je code exception handling gebruikt en het implementeert met constructies als try-except, of tr-except-else, try-except-finally. Hoop, je zou hebben genoten van het lezen van de bovenstaande tutorial.

als je het bericht leuk vond, mis het dan niet om het te delen met vrienden en op sociale media (facebook/twitter).

Best,
TechBeamers.



Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.