【Python】异常
2021/8/13 17:05:58
本文主要是介绍【Python】异常,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
简介
异常是指当程序语法正确,但运行的时候依旧发生的错误我们称之为异常。
异常一般不会被程序处理,都已错误信息的形式表现出来。
异常处理
try/except
try: # 程序正常执行的代码 a = os.listdir() except: # 发生异常时执行的代码 print('发生异常')
发生异常
执行步骤:
- 首先执行try和except之间的语句
- 没有发生异常,忽略except子句
- 如果发生异常try子句剩余的部分将被忽略,异常的类型和except后的名称相符则执行except子句
- 如果异常类型和except定义的不匹配则会重新传递给try子句,由解释器抛出错误信息
注意:
- 可以定义多个不同类型的异常,最多只有一个分支被执行
- 一个except语句也可以同时处理多个异常,需要将这些异常放在一个元组中
- 当except没有指定具体的异常类型时,它将被当做通配符使用,接收所有异常
try/except...else
try: # 正常执行的代码 a = 3 b = 4 c = a/b except: # 发生异常时执行的代码 print('发生异常') else: # 没有发生异常时执行的代码 print('{0}/{1}={2}'.format(a,b,c))
3/4=0.75
- else子句在try子句没有发生异常时执行
- 使用 else 子句比把所有的语句都放在 try 子句里面要好,不仅仅处理那些直接发生在 try 子句中的异常,而且还能处理子句中调用的函数(甚至间接调用的函数)里抛出的异常。
- else子句方便定位异常
try/finally
try: # 正常执行的代码 a = 3 b = 4 c = a/b d = 10 e = d/0 except: # 发生异常时执行的代码 print('发生异常') else: # 没有发生异常时执行的代码 print('{0}/{1}={2}'.format(a,b,c)) finally: print('d*c={0}'.format(c*d))
发生异常 d*c=7.5
- try-finally 语句无论是否发生异常都将执行最后的代码。
抛出异常
Python 使用 raise 语句抛出一个指定的异常。
raise语法格式
raise [Exception [, args [, traceback]]]
a = 0 if a == 0: raise Exception('b/a中除数a为0所以抛出异常')
--------------------------------------------------------------------------- Exception Traceback (most recent call last) <ipython-input-4-f517360799a9> in <module> 1 a = 0 2 if a == 0: ----> 3 raise Exception('b/a中除数a为0所以抛出异常') Exception: b/a中除数a为0所以抛出异常
相关阅读
断言(assert)
这篇关于【Python】异常的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-08有遇到过吗?同样的规则 Excel 中 比Python 结果大
- 2024-03-30开始python成长之路
- 2024-03-29python optparse
- 2024-03-29python map 函数
- 2024-03-20invalid format specifier python
- 2024-03-18pool.map python
- 2024-03-18threads in python
- 2024-03-14python Ai 应用开发基础训练,字符串,字典,文件
- 2024-03-13id3 algorithm python
- 2024-03-13sum array elements python