什么是异常
- 如果代码没有语法问题,可以运行,但会出运行时的错误,例如除零错误,下标越界等问题,这种在运行期间检测到的错误被称为异常 。
- 出现了异常必须处理否则程序会终止执行,用户体验会很差。
- Phthon支持程序员自己处理检测到的异常。
- 可以使用try-except语句进行异常的检测和处理。
python中常见的异常类型
try-except语句
1、首先执行try中【代码块A】,如果出现异常,立即终止代码执行,转而到except块中进行异常处理
2、异常处理except模块可以多个,从上往下匹配,如果能够匹配成功,立即执行相应的异常处理代码块,执行完毕后,不在往下匹配,转到3执行
3、执行异常处理完毕后,如果有finally字句则执行finally字句,如果没有则执行【后续语句】
4、如果匹配不到异常,有finally则执行finally,然后则抛出错误,终止程序执行。
5、如果没有异常,如果有else字句则执行else字句,执行完else后,有finally字句则执行,没有则执行【后续语句】
try:
n = int(input('请输入一个数字'))
n = 5 / n
print(n)
except ZeroDivisionError as e:
print('除数不能为0')
print('原始报错信息',e)
except:
print('请输入一个数字')
else:
print('运行没有被except语句捕获,执行else模块')
finally:
print('无论如何,都要执行finally模块')
raise关键字
手动抛出一个指定类型的异常,无论是哪种异常类都可以带一个字符串参数,对异常进行描述。 raise不带参数会把错误原样抛出
try:
pwd = input('请输入你的密码:')
if len(pwd)<8:
raise Exception('密码的长度不够,请输入一个8位以上的密码')
except Exception as e:
print(e)
PyCharm中的代码调试
知识总结
练习题
- 下列Python保留字中,用于异常处理结构中用来捕获特定类型异常的是 B A. def
B. except
C. while
D. pass
- python中用来抛出异常的关键字是(C )
A. try
B. except
C. raise
D. Finally
- 在异常处理中,如释放资源、关闭文件、关闭数据库等由( C )来完成。 A. try字句
B. catch子句
C. finally子句
D. raise子句
- 当方法遇到异常又不知如何处理时,下列哪种说法是正确的(B ) A. 捕获异常 B. 抛出异常 C. 声明异常 D. 嵌套异常
- 关于程序的异常处理,以下选项中描述错误的是C
A. 程序异常发生经过妥善处理可以继续执行
B. 异常语句可以与 else 和 finally 保留字配合使用
C. 编程语言中的异常和错误是完全相同的概念 D. Python 通过 try、except 等保留字提供异常处理功能
- 关于python的异常处理语句说法错误的是(C )
A.将可能发生异常的语句放在try子句里。
B.except子句用于捕捉并处理异常。
C.else子句里包含了不发生异常时要执行的语句,异常处理里必须包含else句。
D.finally子句包含了不管是否发生异常都要执行的语句。