SoFunction
Updated on 2024-11-20

Python Exception Handling with try.... .except statement

1. Using try/except to handle exceptions

In Python, we can use try... .except statements for exception handling. try blocks contain code that may cause an exception, and if an exception occurs, it will be handled by jumping to the appropriate except block. The following is a simple example:

try:
    num = int(input("Please enter an integer:"))
    print("The number you have entered is:", num)
except:
    print("Input error, please re-enter!")

In the above code, we first use the input function to get a string of user input and pass it through theintfunction converts it to an integer. If the user enters something other than an integer, theValueErrorException. When an exception occurs, thetry Subsequent code in the statement block will no longer be executed and will instead jump to the appropriateexceptprocessing in the statement block. In this example, we use theprintThe function outputs a message telling the user that the input was incorrect and to retype.

2. Specify the type of exception

In addition to simple exception handling, we can also take different approaches depending on the type of exception. For example, we can handle separatelyValueErrorTypeErrorand other anomalies:

try:
    num1 = int(input("Please enter an integer:"))
    num2 = int(input("Please enter another integer:"))
    result = num1 / num2
    print("The result of dividing two numbers is:", result)
except ValueError:
    print("Input error, please enter a whole number!")
except ZeroDivisionError:
    print("The divisor cannot be zero!")
except:
    print("Other unusual occurrences!")

In the above code, we first use theinputfunction takes two integers entered by the user and calculates their quotient.

If any of these inputs is not an integer, theValueErrorexception; if the divisor is 0, then theZeroDivisionErrorExceptions. When an exception occurs, the program jumps to the correspondingexceptstatement block for processing. In this example, we output different prompts depending on the type of exception.

3. Generic except statement

In addition to using separate except statement blocks for different types of exceptions, we can also use a generic except statement block to catch all exceptions:

try:
    file = open("", "r")
    content = ()
    print(content)
except Exception as e:
    print("An anomaly has occurred:", e)
finally:
    ()

In the above code, we first try to open the file named and read its contents. If the file does not exist or cannot be read, a FileNotFoundError or IOError exception is thrown. When the exception occurs, we use a generic except statement block to catch the exception and output the exception message. Finally, we use a finally statement block to close the file and ensure that the resources are freed.

4. Active Exception Throwing

In addition to the above several common ways of handling exceptions, we can also use theraisestatement to actively throw an exception. Example:

def divide(num1, num2):
    if num2 == 0:
        raise ZeroDivisionError("The divisor cannot be zero!")
    return num1 / num2
try:
    result = divide(10, 0)
    print("The result of dividing two numbers is:", result)
except ZeroDivisionError as e:
    print(e)

In the above code, we define adividefunction to compute the quotient of two numbers. If the divisor is zero, use theraisestatement throwsZeroDivisionErrorexception and outputs the corresponding hint message. When this function is called, if an exception occurs, it jumps to the correspondingexceptProcessing is done in the statement block.

In conclusion, using exception handling in Python can improve the stability and reliability of the program and avoid crashing or errors due to unexpected situations. When writing code, we should consider possible exceptions as much as possible and use try.... . except statements to catch and handle these exceptions. At the same time, it is also necessary to pay attention to some common types of exceptions and the corresponding handling, such asValueErrorTypeErrorZeroDivisionErroretc. If we encounter an exception that cannot be handled, we can pass theraisestatement to actively throw an exception, allowing the program to jump to the appropriateexceptProcessing is done in the statement block.

It is important to note that when using thetry...exceptstatements, we should minimize thetryThe scope in the statement block contains only the code that may generate exceptions, rather than the entire program being placed in thetrystatement block. This improves the efficiency of code execution and makes it easier to locate and solve problems.

5. Summary

Finally, it's worth mentioning that in Python we can use the more flexible and powerfulwithstatement in place of thetry...finallystatement block that enables automatic closure of resources. Example:

with open("", "r") as file:
    content = ()
    print(content)

In the above code, we usewithstatement opens the file named and reads its contents. In thewithThe file is automatically closed when the statement block is executed, avoiding the need to manually invoke theclose()method, and also avoids problems such as resource leaks caused by forgetting to close a file.

In conclusion.PythonException handling is an important part of writing stable, reliable programs. This is accomplished through proficiency intry...exceptstatements as well as common exception types and handling, we can make programs more robust and reliable, improving development efficiency and quality.

Above is Python exception handling of try... .except statement, more information about Python try.... .except statement please pay attention to my other related articles!