【python】异常捕获基础

admin 2022年1月10日03:31:25评论10 views字数 1102阅读3分40秒阅读模式

异常处理

常用异常捕获

1
2
3
4
5
6
try-except

try:
正常程序
except:
抛出异常

简单使用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
try:
# 正常程序
ipt = input("请输入:")
num = int(ipt) #ValueError
print(num)
except Exception as e:
# 一旦有异常,执行except内部块
print(e)
num = 1
print(num)

请输入:1.5
invalid literal for int() with base 10: '1.5'
1

列表

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
try:
# li = [2 , 3]
# li[2] # IndexError

a = 2
b = 0
c = a/b # ZeroDivisionError
except IndexError as e:
print(e)
except ZeroDivisionError as e:
print(e)
except Exception as e:
print(e)
else:
print("如果没错~执行else代码")
finally:
print("不管有无异常都执行")

抛出异常raise

1
2
3
4
5
6
7
8
9
10
11
12
'''
主动抛出异常
'''
def test(time):
if time<5:
raise Exception("错误")
try:
test(4)
except Exception as e:
print(e)
else:
print("成功")

抛出异常区分

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
def db():
raise Exception("数据库的错误")
def demo():
try:
db()
except Exception as e:
print(e,'111')

try:
li = [2,3]
li[3]
except Exception as e:
print(e,'111')

demo()

自定义异常

1
2
3
4
5
6
7
8
9
10
11
12
class OldAmyError(Exception):
def __init__(self,msg):
self.msg_err = msg
def __str__(self):
return self.msg_err

# obj = OldAmyError("报错")
# print(obj)
try:
raise OldAmyError("电脑错了。。") # 实例化类
except OldAmyError as e:
print(e)

assert断言

1
2
3
4
5
6
7
8
'''
断言
用于强制用户服从,可捕获也可不
'''

print('---1---') #AssertionError
assert 1==2
print('22222222')

FROM:gylq.gitee Author:孤桜懶契

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年1月10日03:31:25
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   【python】异常捕获基础http://cn-sec.com/archives/729959.html

发表评论

匿名网友 填写信息