高级语言通常都内置了一套try...except...finally...的错误处理机制,Python也不例外。

try:print('try...')r = 10 / 0print('result:', r)
except ZeroDivisionError as e:print('except:', e)
finally:print('finally...')
print('END')

当我们认为某些代码可能会出错时,就可以用try来运行这段代码,如果执行出错,则后续代码不会继续执行,而是直接跳转至错误处理代码,即except语句块,执行完except后,如果有finally语句块,则执行finally语句块,至此,执行完毕。从输出可以看到,当错误发生时,后续语句print('result:', r)不会被执行,except由于捕获到ZeroDivisionError,因此被执行。最后,finally语句被执行。

如果没有错误发生,except语句块不会被执行,但是finally如果有,一定会执行(可以没有finally)。

此外如果没有错误发生,可以在except语句块后面加一个else,当没有错误发生时,会自动执行else语句。

try:print('try...')r = 10 / int('2')print('result:', r)
except ValueError as e:print('ValueError:', e)
except ZeroDivisionError as e:print('ZeroDivisionError:', e)
else:print('no error!')
finally:print('finally...')
print('END')

抛出错误

错误是class,捕捉一个错误就是捕获到该class的一个实例。因此,错误并不是凭空产生的,而是有意创建并抛出的。若果需要抛出错误,根据需要定义一个错误的class,选择好继承关系,然后用raise语句抛出一个错误的实例:

# err_raise.py
class FooError(ValueError):passdef foo(s):n = int(s)if n==0:raise FooError('invalid value: %s' % s)return 10 / nfoo('0')

执行,可以最后跟踪到我们自己定义的错误:

$ python3 err_raise.py
Traceback (most recent call last):File "err_throw.py", line 11, in <module>foo('0')File "err_throw.py", line 8, in fooraise FooError('invalid value: %s' % s)
__main__.FooError: invalid value: 0

只有在必要的时候才定义我们自己的错误类型。如果可以选择Python已有的内置的错误类型(比如ValueErrorTypeError),尽量使用Python内置的错误类型。

python错误处理相关推荐

  1. python导入模块报错syntaxerror_SyntaxError: invalid syntax python错误解决方法

    今天爱分享给大家带来SyntaxError: invalid syntax python错误解决方法,希望能够帮助到大家. "SyntaxError: invalid syntax" ...

  2. python 错误与异常

    python 错误与异常 语法错误 异常:大多数的异常都不会被程序处理,都以错误信息的形式展现在这里 异常处理: while True:try:x = int(input("请输入一个错误: ...

  3. Python错误“ImportError: No module named MySQLdb”解决方法

    Python错误"ImportError: No module named MySQLdb"解决方法 参考文章: (1)Python错误"ImportError: No ...

  4. python错误-python错误和异常处理怎处理你知道么

    原标题:python错误和异常处理怎处理你知道么 异常处理 什么是异常? 首先要清楚,什么是异常,异常就是程序运行时发生错误的信号(在程序出现错误时,则会产生一个异常,若程序没有处理它,则会抛出该异常 ...

  5. python错误-新手常见Python错误及异常解决处理方案

    写Python代码的小伙伴不可避免地会遇到代码执行错误和异常,这次就来详细且不失通俗地总结一下python中的错误和异常. 先抛出两个问题: 什么是Python错误和异常? 如何处理Python错误和 ...

  6. python常见错误-新手常见Python错误及异常解决处理方案

    写Python代码的小伙伴不可避免地会遇到代码执行错误和异常,这次就来详细且不失通俗地总结一下python中的错误和异常. 先抛出两个问题: 什么是Python错误和异常? 如何处理Python错误和 ...

  7. python错误-第16天:Python 错误和异常

    by 闲欢 作为 Python 初学者,在刚学习 Python 编程时,经常会看到一些报错信息,这些报错信息就是我们接下来要讲的错误和异常. 我们在执行程序语句的时候,经常会看到命令行输出报错信息,例 ...

  8. python错误 ImportError: No module named setuptools 解决方法[转]

    在python运行过程中出现如下错误: python错误:ImportError: No module named setuptools 这句错误提示的表面意思是:没有setuptools的模块,说明 ...

  9. python判断正确错误_第16天:Python 错误和异常

    by 闲欢 作为 Python 初学者,在刚学习 Python 编程时,经常会看到一些报错信息,这些报错信息就是我们接下来要讲的错误和异常. 我们在执行程序语句的时候,经常会看到命令行输出报错信息,例 ...

  10. Python 错误和异常

    我们在执行程序语句的时候,经常会看到命令行输出报错信息,例如: >>> while True print('Hello world')File "<stdin> ...

最新文章

  1. CLR via C#(第3版):.net中的定时器整理总结
  2. BootStrap自带的图标
  3. 柜子里的人笑出了声...
  4. <java并发编程实践>读书笔记三
  5. DSP/BIOS实时操作系统中PIP对象多任务间传递数据示例程序
  6. Python 工匠:编写条件分支代码的技巧
  7. 如何选择 WebClient HttpWebRequest HttpClient ?
  8. 在eclipse中使用hadoop插件
  9. hibernate 乐观锁与悲观锁使用
  10. QT每日一练day23:鼠标进入与离开事件
  11. 开发者必备Linux命令
  12. linux设备模型深探
  13. Java代码规范之编程规约
  14. 中国教育行业市场行情动态及投资潜力研究报告(2022-2028年)
  15. 使用CNN实现C-MAPSS数据集里面的剩余寿命预测(Pytorch)
  16. Excel多条件求和函数之SUMPRODUCT
  17. awg线径与电流_AWG_线径电流
  18. latex插入参考文献小技巧
  19. RibbonGatewayopenFeign
  20. 学生信息管理系统用php,PHP案例:学生信息管理系统

热门文章

  1. Yahoo邮箱中全部邮件的下载保存
  2. Tomcat无法启动,报错java.lang.NoClassDefFoundError: org/apache/juli/logging/LogFactory
  3. (十三)算法设计思想之“动态规划”
  4. 小说的逻辑与反逻辑_毕飞宇北大演讲:“走”与“走”——小说内部的逻辑与反逻辑...
  5. Cookie 和 Session的区别 1
  6. ROS-Rtabmap:linux shell运行多个shell(运行多个程序)
  7. TensorFlow: Could not load requested Qt binding.
  8. PythonOpencv-分类器—SVM,KNearest,RTrees,Boost,MLP
  9. 介绍自己的一个Android插桩热修复框架项目QuickPatch
  10. 修改SSO管理员密码