一、异常处理的结构
try:
# 可能引发异常的代码块
pass
except SomeException as e:
# 处理特定异常的代码块
pass
except AnotherException as e:
# 处理另一种特定异常的代码块
pass
except:
# 处理所有其他异常的代码块
pass
else:
# 如果没有发生异常,执行的代码块
pass
finally:
# 无论是否发生异常,都会执行的代码块
pass
try:包含可能引发异常的代码块。
except:用于捕获和处理特定类型的异常。可以有多个 except 块来处理不同类型的异常。
else:在没有发生异常时执行的代码块。
finally:无论是否发生异常,都会执行的代码块。通常用于清理操作,如关闭文件或释放资源。
二、捕获异常
使用except关键字,如何捕获特定类型的异常?
常见的内置异常:
- ZeroDivisionError:除零错误。
- ValueError:值错误。
- TypeError:类型错误。
- FileNotFoundError:文件未找到错误。
- IndexError:索引错误。
- KeyError:键错误。
- IOError:输入输出错误。
- NameError:指定的对象名不存在
- SyntaxError:语法无效
- …
三、抛出异常
Python允许程序员自己触发异常,可以通过 raise关键字来实现。
1.抛出内置异常
def divide(a, b):
if b == 0:
raise ZeroDivisionError("Cannot divide by zero")
return a / b
try:
result = divide(10, 0)
except ZeroDivisionError as e:
print(e)
2.抛出自定义异常
class CustomError(Exception):
def __init__(self, message):
self.message = message
super().__init__(self.message)
def check_value(value):
if value < 0:
raise CustomError("Value must be non-negative")
try:
check_value(-1)
except CustomError as e:
print(e)
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END