python异常处理机制中使用try…except…来进行异常处理,基本格式如下:

try:<body>
except<ErrorTypel>:<handler1>
except<ErrorType2>...

举例1:

num1,num2=eval(input('Enter two numbers,separated by a comma')) #输入两个数,用逗号隔开result=num1/num2print('朕的睫毛能撑伞')

输入3,0,结果提示说错误,除数为零!同时“朕的睫毛能撑伞”并没有执行,因为发生错误语句中断。

Enter two numbers,separated by a comma3,0
Traceback (most recent call last):File "D:/Python/note/test.py", line 2, in <module>result=num1/num2
ZeroDivisionError: division by zero

如果输入的两个都不为零的数,比如3和4,但中间不是用逗号而用空格隔开,,结果也打印print语句:
Traceback (most recent call last):
File “D:/Python/note/test.py”, line 1, in

 num1,num2=eval(input('Enter two numbers,separated by a comma')) #输入两个数,用逗号隔开File "<string>", line 13 4^
SyntaxError: unexpected EOF while parsing

如果我们想要提醒客户可能的输入错误,并将最后的结果打印出来,则可以用try…except …else…finally语句

try:num1,num2=eval(input('Enter two numbers,separated by a comma')) #输入两个数,用逗号隔开result=num1/num2
except ZeroDivisionError:print('分母不能为零')
except SyntaxError:print('请在两个数之间用逗号隔开')
except:  #注意冒号一定要在英文格式下输入print('检查是否输入错误')
else:    #如果语法格式等都正确则进行else语句,注意冒号一定要在英文格式下输入print('No exceptions, the result is>> ',result)#没有异议,结果为:
finally:           #无论输入是否正确,都要执行finally下的语句print('朕的睫毛能撑伞')

finally的目的是防止资源泄漏,因为无论代码有没有错误都会执行finally语句,因此可以将参数删除,文件关闭等放在finally中执行。
结果如下:

Enter two numbers,separated by a comma3,0
分母不能为零
朕的睫毛能撑伞
>>>
====================== RESTART: D:/Python/note/test.py ======================
Enter two numbers,separated by a comma3 4
请在两个数之间用逗号隔开
朕的睫毛能撑伞
>>>
====================== RESTART: D:/Python/note/test.py ======================
Enter two numbers,separated by a comma3,4
No exceptions, the result is>>  0.75
朕的睫毛能撑伞

举例2
给一个txt文本用try…except…判断文本是否存在,如果不存在则给出信息,存在则计算文本有多少单词

def count_words(filename):try:with open(filename) as file:contents = file.read()except FileNotFoundError:msg = 'Sorry, the file '+filename+' does not exist'print(msg)else:words = contents.split()n_words = len(words)print(n_words)filenames = ['alice.txt','pi_digits.txt','hh.txt','little_women.txt','moby_dick.txt','siddhartha.txt']
for filename in filenames:count_words(filename)

结果如下:

29461
3
Sorry, the file hh.txt does not exist
189079
215136
42172
>>>

另外,可以通过pass直接跳过出错的提示,并执行下一步

如将上面的列子中msg = sorry…那一栏直接改为pass,即:

def count_words(filename):try:with open(filename) as file:contents = file.read()except FileNotFoundError:passelse:words = contents.split()n_words = len(words)print(n_words)filenames = ['alice.txt','pi_digits.txt','hh.txt','little_women.txt','moby_dick.txt','siddhartha.txt']
for filename in filenames:count_words(filename)

结果如下:

29461
3
189079
215136
42172
>>>

举例3
判断文本是否存在,存在则将文本打印出来,否则给出错误提示

def cats_dogs(filename):print('Reading file:'+filename)try:with open(filename) as f:contents = f.read()except FileNotFoundError:print('Sorry,I can not find the file '+filename)else:print(contents)filenames = ['cats.txt','dogs.txt','fish.txt']
for filename in filenames:cats_dogs(filename)print('\n')

结果如下:

Reading file:cats.txt
cats
henry
小花狗
小白Reading file:dogs.txt
dogs
shubao
wenjuhe
biReading file:fish.txt
Sorry,I can not find the file fish.txt>>>

举例4;
输入两个数字,用try…except…判断是否是字符,如果是字符则提示输入有误,最后将两个数字相加(如果没有输入n或者q则循环一直保持下去)

def main():print("Enter 'q' to quit\n")while True:try:x = input('Pleast enter a number>>>')if (x == 'q'):breakx = float(x)y = input('Pleast enter another number>>>')if (y == 'q'):breaky = float(y)except ValueError:print('Please enter a number, not letter')else:sum = x+yprint('The sum of these number is '+str(sum))dicision = input('Do you want to continue?y/n>>>')if (dicision == 'n')or (dicision=='q'):breakmain()

所有异常类型


python try...except....else...finally处理异常相关推荐

  1. python的assert(断言)异常步骤机制

    python的assert(断言)异常步骤机制 文章目录: 断言(assert): 就是判断expression 这个表达式语句是否正确,所以切记,断言是有一个判断的过程!!! 格式: assert ...

  2. python 内存溢出能捕获吗_从0基础学习Python (19)[面向对象开发过程中的异常(捕获异常~相关)]...

    从0基础学习Python (Day19) 面向对象开发过程中的=>异常 什么是异常 ​ 当程序在运行过程中出现的一些错误,或者语法逻辑出现问题,解释器此时无法继续正常执行了,反而出现了一些错误的 ...

  3. Python中的文件操作和异常

    Python中的文件操作和异常 文章目录 Python中的文件操作和异常 一.文件 01. 文件的概念 1.1 文件的概念和作用 1.2 文件的存储方式 文本文件和二进制文件 02. 文件的基本操作 ...

  4. Python指南--错误和异常

    Python指南--错误和异常 8.1 语法错误 8.2 异常 8.3 处理异常 8.4 抛出异常 8.5 用户自定义异常 8.6 定义清理行为 8. 错误和异常 至今为止还没有进一步的谈论过错误信息 ...

  5. python中日志logging模块和异常捕获traceback模块的使用

    python中日志logging模块和异常捕获traceback模块的使用 参考文章: (1)python中日志logging模块和异常捕获traceback模块的使用 (2)https://www. ...

  6. Cris 的Python笔记(十三):异常和文件处理

    文章目录 1. Python 是如何处理异常的? 2. Python 中常用的文件处理语法(重点) 3. Python 处理二进制文件 4. seek 和 tell 方法 5. 文件操作之 os 包的 ...

  7. python 忽略错误_python如何忽略异常

    python一般使用try-except-处理异常.try:          #可能会出现异常的代码,放在try下 code1      #如果try内部任意一行代码出现异常,# 直接跳转至exce ...

  8. python装饰器,迭代,异常

    python装饰器,迭代,异常 装饰器的联系 DEL = 8 READ = 4 WRITE = 2 EXE = 1 userpermission = 9def check(x, y):print(&q ...

  9. Python天天练2--面向对象+异常

    2019独角兽企业重金招聘Python工程师标准>>> Python也是面向对象的语言,和所有面向对象的语言一样都有继承.封装.多态三大特征.这不禁让我想到了最近林丹出轨的事,都是一 ...

  10. 【Python初级】009-错误与异常

    2019独角兽企业重金招聘Python工程师标准>>> 目录: ----------什么是错误与异常 1.1.异常类 ----------捕捉异常并处理 1.try...except ...

最新文章

  1. pmp思维导图 第六版_《每天一小时,两月过PMP》备考指南(附计划表)
  2. Java中getResource()的用法
  3. 移动开发技术有哪些?
  4. Python实现八皇后问题
  5. linux判断redis是否启动成功_redis的前生后世
  6. 非现场执法管理计算机(工业级),浅析非现场执法中存在问题的方法及对策
  7. ubuntu12.04 + virtualbox
  8. (1)numpy.power
  9. cpu压测 windows_怎么用AIDA64进行CPU压力测试?
  10. 英语表达技巧—委婉地表达消极,否定情感
  11. 修改UEditor编辑器上传图片大小限制
  12. 对比阿里云服务器和腾讯云服务器的不同之处
  13. 真实经历!运维安全工程师经典面试汇总
  14. WT品牌语音芯片、功放芯片—让人机交互更简单,让电子世界更美好
  15. Python爬虫笔记——解析json数据(以周杰伦歌单为例)及Headers
  16. [置顶] 我的私房IT学习网站
  17. 规划设计系列1 | 现场踏勘,1架无人机能顶5个人
  18. Chrome 便捷设置
  19. oracle将字段nullable设为Y,Oracle 10g中约束与列属性NULLABLE的关系
  20. vue2入门----父传子/子传父/兄弟相传

热门文章

  1. mysql connection闪退重连_玩家排位巅峰赛开局闪退,重连失败,10分钟后一个提示让他懵了...
  2. hive窗口函数分组排序并取第一个值_Hive(七)Hive分析窗口函数
  3. mysql 1594_【MySQL】复制1594错误(从库relaylog损坏)
  4. android 语音自动播报,Android 语音播报实现
  5. python调用自定义函数返回值的类型_生成dll文件以及python对DLL中函数的调用(参数类型以及返回值)...
  6. linux上的定时器上的jiffies,linux定时器和Jiffies汇.doc
  7. suse linux用户界面,suse linux开户图形化界面
  8. FPGA笔试题解析(三)
  9. 【 MATLAB 】 WLLS algorithm Simulation of TOA - Based Positioning
  10. 【 MATLAB 】MATLAB 实现模拟信号采样后的重建(三)应用三次样条函数spline实现内插