异常
在程序语言中,编程过程的错误通常可以分为三类:
1、语法错误:对编程语言的关键字或者是语句含义不对成所造成的
2、运行报错:编写语法正确的前提下,程序运行过程中仍然出现的红色报错事件
3、逻辑错误:即无语法错误,亦无运行报错,然而运行结果却与需要的结果不一样
在第二类错误中,我们可以通过捕获异常来一定程度上解决异常:
a=int(input("请输入数字"))#当输入为浮点型的字符串时会报错
print(a)
捕获异常
try:
a=int(input("请输入数字"))
except ValueError as f:#ValueError为错误类型,当规定异常捕获类型后,那么只能捕获该种异常
print(f)
异常捕获语句:try、except、else、finally的连用
# try:
# a = eval(input())
# b = [1, 2]
# print(b[10])
# except (ZeroDivisionError, IndexError)as e:
# print(e)
#
# print('Over')
try:
a = eval(input("输入"))
b=[1,2]
print(b[6])
except:
print('有问题')
else:
print('没问题')
finally:#无论是否错误,最后必定执行
print('<--------------------------------------------------------------------------->')
try:
a=open('a.txt','r')
a.write('srt')
except IOError as e:
print(e)
finally:
a.close()
需要注意的是,finally也可用于程序最终的终止执行。
自定义异常
class SysException(Exception):
def __init__(self, x, y):
self.x = x
self.y = y
def __str__(self):
return self.x + self.y
try:
raise SysException('asd