【一】异常捕获
1.1 - 常见异常分类
Python中的异常可以分为以下几类:
-
内建异常(Built-in Exceptions):这些异常是Python内置的,用于表示常见的错误情况。例如:
SyntaxError
:语法错误,通常是由于代码不符合Python语法规则导致的。TypeError
:类型错误,通常是由于操作符或函数应用于错误类型的对象导致的。NameError
:名称错误,通常是由于引用了不存在的变量或函数名导致的。ValueError
:值错误,通常是由于传递给函数的参数具有无效的值导致的。IndexError
:索引错误,通常是由于访问列表、元组或字符串等序列时使用了无效的索引导致的。
-
标准库异常(Standard Exceptions):这些异常由Python标准库提供,用于表示特定的错误情况。例如:
FileNotFoundError
:文件未找到错误,通常是由于试图打开不存在的文件导致的。ZeroDivisionError
:零除错误,通常是由于除法操作中除数为零导致的。KeyError
:键错误,通常是由于在字典中使用不存在的键导致的。ImportError
:导入错误,通常是由于导入模块失败或找不到指定的模块导致的。
-
自定义异常(Custom Exceptions):除了使用内建异常和标准库异常外,Python还允许用户自定义异常来表示特定的错误情况。用户可以通过继承
Exception
类创建自定义异常类,并根据需要添加额外的属性和方法。
1.2 - 异常捕获处理
处理异常的方法是使用try-except
语句捕获异常并进行处理。try
块中的代码用于尝试执行可能引发异常的操作,而except
块中的代码用于处理捕获到的异常。可以使用多个except
块来处理不同类型的异常,或者使用一个except
块来捕获所有异常。
下面是一个示例,演示了如何捕获和处理异常:
try:
int('a')
except Exception as e:
print('error')
or
try:
int('a')
except ValueError as e:
print('error')
try-except
语法用于捕获和处理异常。下面是try-except
语句的基本语法结构:
try:
# 可能引发异常的代码
# ...
except ExceptionType1:
# 处理类型为ExceptionType1的异常
# ...
except ExceptionType2:
# 处理类型为ExceptionType2的异常
# ...
except:
# 处理其他类型的异常
1.2.1 异常分支语句
try:
int('1')
except ValueError as e:
print('error')
else:
print('转换成功') # 转换成功
1.2.2 finally 语句
finally
是一个可选的关键字,用于定义一个代码块,无论是否发生异常,该代码块中的代码都会被执行。finally
块通常用于确保在发生异常或不发生异常的情况下都执行某些清理操作,例如关闭文件、释放资源等。
以下是try-except-finally
语句的基本语法结构:
try:
# 可能引发异常的代码
# ...
except ExceptionType1:
# 处理类型为ExceptionType1的异常
# ...
except ExceptionType2:
# 处理类型为ExceptionType2的异常
# ...
except:
# 处理其他类型的异常
# ...
finally:
# 无论是否发生异常,都会执行的代码块
try:
int('1')
except ValueError as e:
print('error')
else:
print('转换成功') # 转换成功
finally:
print('执行完成最后输出') # 执行完成最后输出
1.2.3 自定义异常语句 raise
raise
关键字用于引发异常。通过使用raise
语句,可以在程序中明确地触发异常,以便提供有关错误或异常情况的信息。
raise
语句的基本语法如下:
def divide(x, y):
if y == 0:
raise ValueError("除数不能为零")
return x / y
try:
result = divide(10, 0)
print("结果:", result)
except ValueError as e:
print("发生错误:", str(e))
1.2.4 条件判断触发异常 assert
assert
关键字用于检查某个条件是否为真。如果条件为假,assert
语句会引发一个AssertionError
异常,并提供一个可选的错误消息。
assert
语句的基本语法如下:
assert condition, "Error message"
在上述语法中,condition
是要检查的条件,如果条件为假,则引发AssertionError
异常。"Error message"
是一个可选的错误消息,用于提供关于断言失败的额外信息。
以下是一个示例,演示了如何使用assert
语句:
def index(x, y):
assert y != 0, '除数不能为0'
res = x / y
return res
# AssertionError
res1 = index(10, 0)
print(res1) # 除数不能为0
标签:语句,错误,捕获,except,try,print,异常
From: https://www.cnblogs.com/wx-x/p/17879777.html