Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Challenge: Catching Multiple Exceptions | Introduction to Exceptions
Python Error Handling

bookChallenge: Catching Multiple Exceptions

Why Catch Multiple Exceptions

When you write Python code that interacts with user input or external data, you must expect things to go wrong. For example, you might ask a user to enter a number as a string, convert it to an integer, and then use it as a divisor. Two common problems can occur:

  • The string cannot be converted to an integer (such as "hello" or "3.14");
  • The integer is zero, causing a division by zero error.

If you do not handle these exceptions, your program will crash and display a confusing error message. By catching multiple exceptions, you can provide clear feedback and keep your program running smoothly.

Scenario: Suppose you ask a user to enter a number as a string, then divide 100 by that value. If the user enters "0", you get a ZeroDivisionError. If the user enters "abc", you get a ValueError. You need to catch both errors and respond with helpful messages.

Catching multiple exceptions in a single block of code makes your programs safer and more user-friendly.

Handling Multiple Exceptions in a Single Try-Except Block

When you expect more than one type of error in a block of code, use multiple except clauses after a single try block. This structure allows you to respond differently depending on which exception occurs, keeping your code organized and easier to read.

try:
    # Code that may raise multiple exceptions
    risky_operation()
except ValueError:
    print("A ValueError occurred.")
except ZeroDivisionError:
    print("Cannot divide by zero.")

Key points:

  • Place all code that might raise exceptions inside one try block;
  • Add a separate except clause for each exception type you want to handle;
  • Each except clause only handles its specific exception type, so error messages and recovery steps stay clear and relevant.

This approach makes your code more maintainable and ensures that you provide meaningful feedback for each possible error.

Opgave

Swipe to start coding

Create a function named safe_divide_from_string that takes two arguments: number_str (a string) and divisor (an integer). The function should:

  • Convert number_str to an integer;
  • Divide 100 by that integer;
  • Handle both ValueError (if the string cannot be converted) and ZeroDivisionError (if division by zero occurs) using try-except;
  • Return the result if successful, or a string message describing the error if an exception is caught.

Løsning

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 1. Kapitel 4
single

single

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

close

Awesome!

Completion rate improved to 6.67

bookChallenge: Catching Multiple Exceptions

Stryg for at vise menuen

Why Catch Multiple Exceptions

When you write Python code that interacts with user input or external data, you must expect things to go wrong. For example, you might ask a user to enter a number as a string, convert it to an integer, and then use it as a divisor. Two common problems can occur:

  • The string cannot be converted to an integer (such as "hello" or "3.14");
  • The integer is zero, causing a division by zero error.

If you do not handle these exceptions, your program will crash and display a confusing error message. By catching multiple exceptions, you can provide clear feedback and keep your program running smoothly.

Scenario: Suppose you ask a user to enter a number as a string, then divide 100 by that value. If the user enters "0", you get a ZeroDivisionError. If the user enters "abc", you get a ValueError. You need to catch both errors and respond with helpful messages.

Catching multiple exceptions in a single block of code makes your programs safer and more user-friendly.

Handling Multiple Exceptions in a Single Try-Except Block

When you expect more than one type of error in a block of code, use multiple except clauses after a single try block. This structure allows you to respond differently depending on which exception occurs, keeping your code organized and easier to read.

try:
    # Code that may raise multiple exceptions
    risky_operation()
except ValueError:
    print("A ValueError occurred.")
except ZeroDivisionError:
    print("Cannot divide by zero.")

Key points:

  • Place all code that might raise exceptions inside one try block;
  • Add a separate except clause for each exception type you want to handle;
  • Each except clause only handles its specific exception type, so error messages and recovery steps stay clear and relevant.

This approach makes your code more maintainable and ensures that you provide meaningful feedback for each possible error.

Opgave

Swipe to start coding

Create a function named safe_divide_from_string that takes two arguments: number_str (a string) and divisor (an integer). The function should:

  • Convert number_str to an integer;
  • Divide 100 by that integer;
  • Handle both ValueError (if the string cannot be converted) and ZeroDivisionError (if division by zero occurs) using try-except;
  • Return the result if successful, or a string message describing the error if an exception is caught.

Løsning

Switch to desktopSkift til skrivebord for at øve i den virkelige verdenFortsæt der, hvor du er, med en af nedenstående muligheder
Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 1. Kapitel 4
single

single

some-alt