Grunderna i Felhantering i Python: Förebygga Programkrascher
Felfångst är en avgörande färdighet för varje programmerare, eftersom det gör att dina program kan reagera lämpligt på oväntade problem. Detta kapitel behandlar de typer av fel och undantag du kan stöta på och hur du hanterar dem med hjälp av try- och except-block.
Typer av fel och undantag i Python
Python kategoriserar fel i två huvudtyper: syntaxfel och undantag.
Syntaxfel
Syntaxfel uppstår när tolken upptäcker ett felaktigt uttalande. Det kan vara ett stavfel, en saknad parentes eller felaktig indragning. Här är ett exempel:
1print("Hello world"
Detta kommer att resultera i ett syntaxfel (SyntaxError) eftersom den avslutande parentesen saknas.
Undantag eller körtidsfel
Undantag är fel som upptäcks under körning. Vanliga undantag inkluderar:
- IndexError: försök att komma åt ett index som inte finns;
- ValueError: ett argument med felaktigt värde skickas;
- TypeError: datatypen matchar inte, till exempel att lägga ihop en sträng med ett heltal;
- ZeroDivisionError: division av ett tal med noll;
- FileNotFoundError: försök att komma åt en fil som inte finns.
Här är en undantagshierarki där varje fel på lägre nivå ärver från det ovanför. Detta innebär att om du fångar ett undantag på högre nivå, såsom Exception, kommer det även att fånga alla härledda 'barn'-fel. Det är inte nödvändigt att känna till varje enskilt fel, men de som är markerade i gult är de vanligaste och särskilt viktiga att känna till.
Blocket try, except
För att hantera undantag effektivt använder Python blocken try och except. Detta gör att programmet kan fortsätta även om ett fel uppstår.
Exempel på try, except-block
1234567try: # Attempt to divide by zero result = 10 / 0 print("The result is", result) except ZeroDivisionError: # This code runs if the ZeroDivisionError is raised print("Attempted to divide by zero.")
Om divisionen vore möjlig (dvs. om man delar med ett tal annat än noll), skulle print-satsen inom try-blocket köras och except-blocket skulle hoppas över. Except-blocket körs endast när det specifika fel som det är avsett att fånga uppstår.
Swipe to start coding
Skriv ett skript som hanterar olika typer av fel med hjälp av grundläggande operationer.
#Använd kommentarer som hjälpsamma tips för att lösa denna uppgift 😉
Lösning
Tack för dina kommentarer!
single
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal
Fantastiskt!
Completion betyg förbättrat till 3.13
Grunderna i Felhantering i Python: Förebygga Programkrascher
Svep för att visa menyn
Felfångst är en avgörande färdighet för varje programmerare, eftersom det gör att dina program kan reagera lämpligt på oväntade problem. Detta kapitel behandlar de typer av fel och undantag du kan stöta på och hur du hanterar dem med hjälp av try- och except-block.
Typer av fel och undantag i Python
Python kategoriserar fel i två huvudtyper: syntaxfel och undantag.
Syntaxfel
Syntaxfel uppstår när tolken upptäcker ett felaktigt uttalande. Det kan vara ett stavfel, en saknad parentes eller felaktig indragning. Här är ett exempel:
1print("Hello world"
Detta kommer att resultera i ett syntaxfel (SyntaxError) eftersom den avslutande parentesen saknas.
Undantag eller körtidsfel
Undantag är fel som upptäcks under körning. Vanliga undantag inkluderar:
- IndexError: försök att komma åt ett index som inte finns;
- ValueError: ett argument med felaktigt värde skickas;
- TypeError: datatypen matchar inte, till exempel att lägga ihop en sträng med ett heltal;
- ZeroDivisionError: division av ett tal med noll;
- FileNotFoundError: försök att komma åt en fil som inte finns.
Här är en undantagshierarki där varje fel på lägre nivå ärver från det ovanför. Detta innebär att om du fångar ett undantag på högre nivå, såsom Exception, kommer det även att fånga alla härledda 'barn'-fel. Det är inte nödvändigt att känna till varje enskilt fel, men de som är markerade i gult är de vanligaste och särskilt viktiga att känna till.
Blocket try, except
För att hantera undantag effektivt använder Python blocken try och except. Detta gör att programmet kan fortsätta även om ett fel uppstår.
Exempel på try, except-block
1234567try: # Attempt to divide by zero result = 10 / 0 print("The result is", result) except ZeroDivisionError: # This code runs if the ZeroDivisionError is raised print("Attempted to divide by zero.")
Om divisionen vore möjlig (dvs. om man delar med ett tal annat än noll), skulle print-satsen inom try-blocket köras och except-blocket skulle hoppas över. Except-blocket körs endast när det specifika fel som det är avsett att fånga uppstår.
Swipe to start coding
Skriv ett skript som hanterar olika typer av fel med hjälp av grundläggande operationer.
#Använd kommentarer som hjälpsamma tips för att lösa denna uppgift 😉
Lösning
Tack för dina kommentarer!
single