代码如下:
try:
可能引发异常的代码
except 异常类型名称:
异常处理代码
else:
没有发生异常时执行的代码
在处理异常时,将可能引发异常的代码放在try语句块中。在except语句中指明捕捉处理的异常类型名称,except语句块中为发生指定异常时执行的代码。else语句块中为没有发生异常时执行的代码,else部分可以省略。
代码示例如下:
x=[1,2]
try:
x[0]/0
except ZeroDivisionError:
print("除0错误")
except IndexError:
print("索引下标超出范围")
else:
print("没有错误")
2、可以在except语句中同时指定多种异常,以便使用相同的异常处理代码进行统一处理。在except语句中可以使用as为异常类创建一个实例对象。
代码示例如下:
x = [1,2]
try:
x[0]/0
except ZeroDivisionError as err:
print("程序运行出错,错误信息如下:")
print("异常类型:",err.__class__.__name__)
print("异常信息:",err)
def function():
try:
print(5/0)
except:
print("出错了")
finally:
print("finally部分已执行") #不管是否发生异常都会执行
print("程序运行结束")
function() #执行函数
5.1、raise语句基本格式如下:
raise 异常类名
raise 异常类实例对象
raise
raise语句基本用法如下:
# 1、类名引发异常
raise IndexError
# 2、创建异常类的实例对象后引发异常
x = IndexError()
raise x
# 3、不带参数的raise语句可再次引发刚刚发生过的异常,其作用就是向外传递异常
try:
raise IndexError #引发异常
except:
print("程序运行出错了")
raise #再次引发异常
# 4、在使用raise语句引发异常时,可以为异常类指定描述信息
raise IndexError("索引下标超出范围")
# 5、异常链:异常引发异常
#可以使用raise…from…语句,使用异常来引发另一个异常
try:
5/0
except Exception as x:
raise IndexError("下标越界")from x #引发另一个异常
5.2、assert语句基本格式如下:
assert语句在“测试表达式”的值为假时,引发AssertionError异常,data作为异常描述信息。
assert测试表达式,data
assert语句基本用法如下:
try:
import math
x = 5
assert x>=0,'参数x必须是非负数'
except Exception as err:
print("程序运行出错,错误信息如下:")
print("异常类型:",err.__class__.__name__)
print("异常信息:",err)
自定义异常类可以提供常规异常处理之外的自定义操作。
所有异常类独有共同的超类:BaseException、Exception。
异常可以在程序运行过程中进行捕捉,进行处理,从而避免程序意外崩溃。对程序执行异常处理,是一种良好的编程习惯。