Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Grunderna i Felhantering i Python: Förebygga Programkrascher | Bemästra Felhantering i Python
Practice
Projects
Quizzes & Challenges
Quizzes
Challenges
/
Python Strukturell Programmering

bookGrunderna 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:

1
print("Hello world"
copy

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

1234567
try: # 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.")
copy

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.

Uppgift

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

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 2. Kapitel 1
single

single

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

close

bookGrunderna 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:

1
print("Hello world"
copy

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

1234567
try: # 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.")
copy

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.

Uppgift

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

Switch to desktopByt till skrivbordet för praktisk övningFortsätt där du är med ett av alternativen nedan
Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 2. Kapitel 1
single

single

some-alt