【python】异常捕获基础

异常处理

常用异常捕获

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')

本文标题:【python】异常捕获基础

文章作者:孤桜懶契

发布时间:2021年07月07日 - 22:00:00

最后更新:2022年05月20日 - 11:47:45

原始链接:https://gylq.gitee.io/posts/94.html

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

-------------------本文结束 感谢您的阅读-------------------