Python异常处理

异常基本概述

  1. 每个异常都是某个类的实例
  2. 发生了异常如果不捕获,程序将终止执行
  3. 有一些内置的异常类(Exception等)

捕获异常

try except句式

1
2
3
4
5
6
7
8
9
10
11
def test(a, b):
return a/b

if __name__ == '__main__':
try:
print(test(2, 0))
except:
print("出错了")

#############################
出错了

检测出错类型的方法

1
2
3
4
5
6
7
8
9
10
11
12
13
def test(a, b):
return a/b

if __name__ == '__main__':
try:
print(test(2, 'a'))
except ZeroDivisionError:
print("除数为0")
except TypeError:
print("类型出错")

#######################################
类型出错

获取出错信息

1
2
3
4
5
6
7
8
9
10
11
def test(a, b):
return a/b

if __name__ == '__main__':
try:
print(test(2, 'a'))
except (ZeroDivisionError, TypeError) as e:
print(e)

############################################
unsupported operand type(s) for /: 'int' and 'str'

处理必须处理的语句(finally中的语句不管有没有问题都会执行)

try except finally语句

1
2
3
4
5
6
7
8
9
10
11
12
13
14
def test(a, b):
return a/b

if __name__ == '__main__':
try:
print(test(2, 'a'))
except (ZeroDivisionError, TypeError) as e:
print(e)
finally:
print("我必须处理")

#################################################
unsupported operand type(s) for /: 'int' and 'str'
我必须处理

自定义异常和抛出异常

通过继承Exception类来定义异常,通过使用raise关键字来抛出异常。

1、自定义异常。通过创建一个继承自Exception类的新的异常类来记录自己的异常

1
2
3
4
5
6
7
8
9
10
11
12
class test(Exception):
pass

if __name__ == '__main__':
if True:
raise test('出现了自定义的测试错误')

######################################################
Traceback (most recent call last):
File "C:/Users/lenovo/Desktop/python学习/decorate.py", line 7, in <module>
raise test('出现了自定义的测试错误')
__main__.test: 出现了自定义的测试错误
Donate
  • Copyright: Copyright is owned by the author. For commercial reprints, please contact the author for authorization. For non-commercial reprints, please indicate the source.
  • Copyrights © 2019-2021 子夜
  • Visitors: | Views:

请我喝杯咖啡吧~

支付宝
微信