异常处理
异常:报错
语法异常(错误都是SyntaxError)
出现SyntaxError: invalid syntax语法无效
if # SyntaxError
0 = 1 # SyntaxError
逻辑异常(错误类型)
出现ZeroDivisionError: division by zero除零错误等
1/0 # ZeroDivisionError
dic = {}
print(dic['skldfj']) # KeyError
try的使用
当try不显示错误,错在哪时:
print(1)
try: # 尝试
print(3) # 代码自上而下运行,上面的会运行
1 / 0 # 错误不影响其他的代码,报错马上终止try缩进里面的代码
print(4)
except: # 除此之外
pass
# 结果、
当try显示错误,错在哪时:
print(1)
try:
num = input('请输入一个值:')
dic = {'0': 'a'}
print(dic[num])
print(3)
1 / int(num)
print(4)
except ZerDivisionError as e: # try里面的代码出了什么错误,就带用什么错误捕捉;as是把错误赋值给 e
print('e:', e)
except KeyError as e: # 可以使用多个except进行捕捉
print('e:', e)
最重要的语句 以后想捕捉错误语句就用这个
"Exception"
except Exception as e: # Exception 可以捕捉任意异常,但是语法错误无法捕捉
print('e:', e)
自己写的:
print(1)
try:
num = input('请输入一个值:')
lis = [1]
print(lis[int(num)])
print(3)
1 / int(num)
print(4)
except Exception as e:
print('e:', e)
print(2)
了解部分;但不代表不重要
# finally 的基本讲解
f = open('文件名.py', 'r')
data = f.read()
print(data)
del f # 只删除f的引用
f.close() # 即删除f的引用,又会命令操作系统关闭外存文件的占用
print(1)
try:
1 / 1
#或1 / 0
except Exception as e:
print('e:', e)
finally: # 最终的意思,无论报不报错都会打印,讲文件处理的时候会用到
print(3)
print(2)
assert 断言,最早的时候没有pycharm,那这个就代表调试
a = 1
a += 2
assert a == 3 # 条件成立会跳过,条件错误会报AssertionError错误;断言错误
print(3 )
raise 主动抛错,没有用, 创建框架/创建语言有用 C/C++
raise KeyError('傻逼吧,主动抛错干嘛~')
标签:Exception,错误,处理,except,try,num,print,异常
From: https://www.cnblogs.com/hanyingshuo/p/17687465.html