异常主要是指运行中产生的错误
导致程序中断运行的错误称为异常(Exception) 异常是一个事件,该事件会在程序执行过程中发生,影响程序的正常执行。当Python程序发生异常时需要捕获处理它,否则程序会终止执行。
Python定义了一些异常类,配合一定的机制在Python中处理程序中的各种异常。这些类的基类都是BaseException。
Python中使用try-except语句来处理异常。
try-except语句的格式如下:
try:
代码块
except 异常类型1:
处理异常1
except 异常类型2:
处理异常2
except (异常类型3, 异常类型4):
处理异常3和4
else:
没有异常时执行
finally:
无论是否有异常都执行
代码
list1 = [1,1,2,3,5,8]
try:
print(list1[8])
except IndexError as e:
print("列表索引超出范围!")
x,y = eval(input("请输入两个整数: "))
try:
z = x / y
print("z =",z)
except TypeError as e1:
print("数据类型异常:",e1)
except ZeroDivisionError:
print("除数为零异常!")
except:
print("程序运行异常!")
else:
print("程序执行正确!")
执行结果
x,y = map(int,input("请输入两个整数: ").split())
抛出异常由raise语句执行,raise的一般格式如下:
raise [Exception [,args [,traceback]]]
定义一个函数判定传入的参数是否为大于等于0的整数:如果是,则输出该整数;否则,抛出异常。
代码:
def greaterZero(n):
if n < 0:
raise Exception("您传入了一个小于零的整数!") #抛出异常.
else:
print("n =",n)
try:
x = int(input("请输入一个整数: "))
greaterZero(x) #调用函数.
except Exception as e:
print(e)
assert断言语句是一种在程序测试中比较常用的技术,常用于在程序的某个位置判断是否满足某个条件。
assert语句的一般格式为:
assert expression[,arguments]
x = -2
assert x >= 0,"x小于0" #表达式为False,触发异常.
x = 2
assert x >= 0,"x小于0" #表达式为True,不触发异常.