异常处理是在程序执行期间检测到的错误或异常情况的处理过程。在Python中,异常由 try
, except
, else
和 finally
语句来处理。以下是一个简单的介绍:
1. try
和 except
块:
try:
# 可能会引发异常的代码块
result = 10 / 0 # 除零异常
except ZeroDivisionError:
# 处理特定类型的异常
print("Cannot divide by zero!")
except Exception as e:
# 处理其他异常
print(f"An error occurred: {e}")
try
块包含可能引发异常的代码。except
块用于捕获并处理特定类型的异常。可以有多个except
块,每个用于处理不同类型的异常。as
关键字用于将异常对象赋给变量。
2. else
块:
try:
result = 10 / 2
except ZeroDivisionError:
print("Cannot divide by zero!")
else:
print(f"Result: {result}")
else
块在try
块没有引发异常时执行。
3. finally
块:
try:
result = 10 / 2
except ZeroDivisionError:
print("Cannot divide by zero!")
else:
print(f"Result: {result}")
finally:
print("This will always be executed.")
finally
块中的代码总是会执行,无论是否发生异常。
4. 自定义异常:
class MyCustomError(Exception):
def __init__(self, message="This is a custom error."):
self.message = message
super().__init__(self.message)
try:
raise MyCustomError("This is a custom exception.")
except MyCustomError as e:
print(f"Caught an exception: {e}")
- 自定义异常类需要继承自
Exception
类。 raise
语句用于引发异常。
5. 多个异常:
try:
result = 10 / 0
except (ZeroDivisionError, ArithmeticError) as e:
print(f"An error occurred: {e}")
- 多个异常可以放在一个
except
块中,用元组表示。
6. 异常的传递:
异常可以在调用堆栈中传递,可以在不同的代码块中捕获和处理。
def func1():
raise ValueError("This is a value error.")
def func2():
try:
func1()
except ValueError as e:
print(f"Caught an exception in func2: {e}")
func2()
这些是Python中的异常处理的基本概念和语法。合理的异常处理是写健壮代码的关键,它可以提高程序的可维护性和可靠性。
标签:try,Python,except,else,学习,result,print,异常 From: https://blog.csdn.net/SmiledrinkCat/article/details/136435915