Python 有两种错误很容易辨认:语法错误和异常。

异常

即便 Python 程序的语法是正确的,在运行它的时候,也有可能发生错误。运行期检测到的错误被称为异常。

大多数的异常都不会被程序处理,都以错误信息的形式展现在这里:

例如:

异常处理

try/except

异常捕捉可以使用 try/except 语句

try 语句按照如下方式工作;

  • 首先,执行 try 子句(在关键字 try 和关键字 except 之间的语句)。

  • 如果没有异常发生,忽略 except 子句,try 子句执行后结束。

  • 如果在执行 try 子句的过程中发生了异常,那么 try 子句余下的部分将被忽略。如果异常的类型和 except 之后的名称相符,那么对应的 except 子句将被执行。

  • 如果一个异常没有与任何的 except 匹配,那么这个异常将会传递给上层的 try 中。

一个 try 语句可能包含多个except子句,分别来处理不同的特定的异常。最多只有一个分支会被执行。

处理程序将只针对对应的 try 子句中的异常进行处理,而不是其他的 try 的处理程序中的异常。

一个except子句可以同时处理多个异常,这些异常将被放在一个括号里成为一个元组,例如:

except (RuntimeError, TypeError, NameError):
    pass

最后一个except子句可以忽略异常的名称,它将被当作通配符使用。你可以使用这种方法打印一个错误信息,然后再次把异常抛出。

例如:

import systry:f = open('myfile.txt')s = f.readline()i = int(s.strip())
except OSError as err:print("OS error: {0}".format(err))
except ValueError:print("Could not convert data to an integer.")
except:print("Unexpected error:", sys.exc_info()[0])raise

如果没有myfile.txt文件,则except子句处理OSError异常,运行结果为:

如果已经创建myfile.txt文件,则except子句处理ValueError子句,运行结果为:

try/except...else

try/except 语句还有一个可选的 else 子句,如果使用这个子句,那么必须放在所有的 except 子句之后。else 子句将在 try 子句没有发生任何异常的时候执行。else子句语句块中的内容当try语句中发生异常时,将不被执行。

f=open('x.txt','w')  #创建x.txt文件并以写的模式打开
str='hello world \n 你好 世界'
f.write(str)  #写入内容
f.close()#下面是读文件for x in range(1,3):try:f = open('x.txt', 'r')except IOError:print('cannot open', arg)else:for line in f:# print("读第"+str(x)+"遍")print(line)f.close()

因为文件可以打开,所以执行else语句中的读文件操作,运行结果为:

使用 else 子句比把所有的语句都放在 try 子句里面要好,这样可以避免一些意想不到,而 except 又无法捕获的异常。
异常处理并不仅仅处理那些直接发生在 try 子句中的异常,而且还能处理子句中调用的函数(甚至间接调用的函数)里抛出的异常。

例如:

def chu():print(1/0)
try:chu()
except ZeroDivisionError as err:print('Handling run-time error:', err)

try语句中调用chu()函数,有异常,运行结果为:

python错误与异常(try/except 和 try/except...else)相关推荐

  1. python 错误与异常

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

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

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

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

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

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

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

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

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

  6. Python 错误和异常

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

  7. python缩进格式错误的是_19个常见的python错误和异常

    19个常见的python错误和异常 错误总是不可避免,尤其是在初学阶段,本文收集整理了1个常见的python错误 1. 忘记添加: 在if, elif, else, for, while, class ...

  8. 怎么解决python遇到问题_新手常见Python错误及异常解决处理方案

    新手常见Python错误及异常解决处理方案,异常,错误,语句,子句,代码 新手常见Python错误及异常解决处理方案 易采站长站,站长之家为您整理了新手常见Python错误及异常解决处理方案的相关内容 ...

  9. 一日一技:一文搞懂Python错误和异常

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

  10. Python错误和异常小结

    Python错误和异常小结 参考文章: (1)Python错误和异常小结 (2)https://www.cnblogs.com/tbliang/p/9048943.html 备忘一下.

最新文章

  1. 解决IDM“警告:您在以管理员身份运行IDM,在该模式下,IDM无法接管浏览器的下载事件”的问题。
  2. 从零开始数据科学与机器学习算法-KNN分类算法-07
  3. 基于python的图片修复程序-可用于水印去除
  4. IntelliJ IDEA 如何用 真机 测试安卓(Android)App 实战移动端
  5. 从一个表复制到另一个表SQL
  6. matlab练习程序(方框模糊)
  7. 打印机服务器总是自动停止,win7系统print spooler服务总是自动停止怎么办
  8. 三菱PLC Q系列经典大型12轴Q01U 实际使用中程序,详细中文注释
  9. linux安装razer鼠标驱动
  10. WIN10创建虚拟桌面
  11. Tailscale组成局域网(以文明6联机为例)
  12. 这一次我要真正学会C语言
  13. 交换机(华为)双因素身份认证解决方案
  14. websocket传输速率_STM32 websocket,TCP和UDP的传输速率
  15. mac下编译hadoop3.0.*版本的native lib
  16. 被迫改变生活方式对少数族群的微生物群和健康的影响
  17. IP-guard V4 服务器迁移方法
  18. OJ求Sn=a+aa+aaa+…+aa…aaa(有n个a)之值
  19. Android破解与防破解
  20. 腾讯广告 广点通 数据上报 上传用户行为数据

热门文章

  1. Matlab中出现“位置1处的索引超出数组边界(不能超过1)”
  2. c语言outl函数,在作业中Outlook
  3. Java文件操作大全(包括文件加密,String加密)
  4. hd1871 无题——卖得一手好萌
  5. 47个经典java程序编程题
  6. opencv python gpu加速_在Windows上使用OpenCV和Python进行硬件加速解码(MSMT/IntelMFX/FFMPEG/any-backend)...
  7. 动作捕捉系统用于柔性机械臂的末端定位控制
  8. 基于STM32F4开发的智能台灯
  9. html5 jquery魔方,以魔方入门前端 – 前端开发,JQUERY特效,全栈开发,vue开发...
  10. vue前端面试题之vue组件传递参数