从0开始的Python学习016异常


Posted in Python onApril 08, 2019

简介

当你的程序不能正常运行的时候,Python会在控制台打印一段提醒,告诉你一个错误,这个错误就是异常。

错误

从0开始的Python学习016异常

我在控制台写了一段无效的代码,将print()的括号去掉,在执行这条语句的时候,系统提示语法错误,无效的语句(我百度翻译的)。这就是错误处理器所作的工作。

再换一种方式写错误:

从0开始的Python学习016异常

在程序获取用户输入的时候,我们使用CTRL+d引发了一个EOFError错误,接下来我们尝试去处理这样的错误。

处理异常

使用try---except语句来处理异常。我们通常把容易产生异常的语句放置在try块中,把做异常处理的语句放在except块中。

import sys

try:
  a = input('Enter something:')
except(EOFError):
  print('\nWhy did you do an EOF on me ?')
  sys.exit()
except:
  print('\nSome error/exception occurred.')

print('Done')

运行结果

从0开始的Python学习016异常

我们把所有可能引发错误的语句放在try块中,然后在except从句/块中处理所有的错误和异常。except从句可以专门处理单一的错误或异常,或者一组包括在圆括号内的错误/异常。如果没有给出错误或异常的名称,它会处理 所有的 错误和异常。对于每个try从句,至少都有一个相关联的except从句。

你还可以让try..catch块关联上一个else从句。当没有异常发生的时候,else从句将被执行。

import sys

try:
  a = input('Enter something:')
except(EOFError):
  print('\nWhy did you do an EOF on me ?')
  sys.exit()
except:
  print('\nSome error/exception occurred.')
else:
  print('no error')

print('Done')

运行结果

从0开始的Python学习016异常

raise引发异常

你可以使用raise语句抛出异常。你需要指明错误/异常的名称和伴随异常触发的异常对象。这个异常应该是Error和Exception类的子类。这就用到了继承的思想,使用__init__方法初始一些方法和参数。

class ShortInputException(Exception):
  def __init__(self,length,atleast):
    Exception.__init__(self)
    self.length = length
    self.atleast = atleast

try:
  s = input('Enter something-->')
  print(len(s))
  if len(s) < 3:
    raise ShortInputException(len(s),atleast = 3)
except(EOFError):
  print('\nWhy did you do an EOF on me ?')
except(ShortInputException) as x:
  print('ShortInputException: The in input was of length %d,\
      was expecting at least %d' % (x.length,x.atleast))
else:
  print('No exception was raised.')

运行结果

从0开始的Python学习016异常

try...finally

假如在你读文件的时候发生了异常,但是无论如何文件都要关闭。这个时候该怎么做呢?

这里我们需要使用finally块来完成。

在使用try捕获异常的时候,我们可以同时使用except块和finally块。

import time

try:
  f = open('poem.txt')
  while True: # our usual file-reading idiom
    line = f.readline()
    if len(line) == 0:
      break
    time.sleep(2)
    print(line)
finally:
  f.close()
  print('Cleaning up...closed the file')

运行结果

从0开始的Python学习016异常

这里使用了time的sleep函数,里面的参数是它的运行间隔。

从0开始的Python学习016异常

这样我们就有时间去使用CTRL+c使程序发生异常。这时候我们发现finally块中的语句还是运行的,文件正常关闭了。

简极(∞+∞=∞ ∞-∞=∞)

以上所述是小编给大家介绍的Python异常详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Python 相关文章推荐
使用Python搭建虚拟环境的配置方法
Feb 28 Python
使用pandas read_table读取csv文件的方法
Jul 04 Python
python3结合openpyxl库实现excel操作的实例代码
Sep 11 Python
Python清空文件并替换内容的实例
Oct 22 Python
深入浅析Python2.x和3.x版本的主要区别
Nov 30 Python
Django 源码WSGI剖析过程详解
Aug 05 Python
python生成requirements.txt的两种方法
Sep 18 Python
tensorflow 实现打印pb模型的所有节点
Jan 23 Python
使用Django和Postgres进行全文搜索的实例代码
Feb 13 Python
python下载的库包存放路径
Jul 27 Python
python+selenium 简易地疫情信息自动打卡签到功能的实现代码
Aug 22 Python
Python用requests库爬取返回为空的解决办法
Feb 21 Python
Python字符串匹配之6种方法的使用详解
Apr 08 #Python
Python面向对象实现一个对象调用另一个对象操作示例
Apr 08 #Python
Python后台开发Django的教程详解(启动)
Apr 08 #Python
Python3利用print输出带颜色的彩色字体示例代码
Apr 08 #Python
Python定义函数功能与用法实例详解
Apr 08 #Python
详解Python中pandas的安装操作说明(傻瓜版)
Apr 08 #Python
Python下简易的单例模式详解
Apr 08 #Python
You might like
解析PHP中数组元素升序、降序以及重新排序的函数
2013/06/20 PHP
php获取远程图片体积大小的实例
2013/11/12 PHP
PHP冒泡算法详解(递归实现)
2014/11/10 PHP
php include类文件超时问题处理
2015/02/06 PHP
PHP sleep()函数, usleep()函数
2016/08/25 PHP
jQuery中bind()方法用法实例
2015/01/19 Javascript
JS实现文档加载完成后执行代码
2015/07/09 Javascript
js获取iframe中的window对象的实现方法
2016/05/20 Javascript
jQuery 获取页面li数组并删除不在数组中的key
2016/08/02 Javascript
vue2.0使用Sortable.js实现的拖拽功能示例
2017/02/21 Javascript
Javascript中的async awai的用法
2017/05/17 Javascript
微信小程序自定义底部弹出框
2020/11/16 Javascript
详解webpack 最简打包结果分析
2019/02/20 Javascript
Vue 中文本内容超出规定行数后展开收起的处理的实现方法
2019/04/28 Javascript
Python 实现数据库(SQL)更新脚本的生成方法
2017/07/09 Python
浅谈Python黑帽子取代netcat
2018/02/10 Python
Python实用技巧之利用元组代替字典并为元组元素命名
2018/07/11 Python
python3 os进行嵌套操作的实例讲解
2020/11/19 Python
python如何构建mock接口服务
2021/01/28 Python
Html5 webRTC简单实现视频调用的示例代码
2020/09/23 HTML / CSS
加拿大购物频道:The Shopping Channel
2016/07/21 全球购物
美国领先的礼品卡网站:GiftCards.com
2016/11/02 全球购物
日本民宿预约平台:STAY JAPAN
2017/07/01 全球购物
Liu Jo西班牙官网:意大利服装品牌
2019/09/11 全球购物
黑猩猩商店:The Chimp Store
2020/02/12 全球购物
仓库管理专业个人自我评价范文
2013/11/11 职场文书
后勤采购员岗位职责
2013/12/19 职场文书
无工作经验者个人求职信范文
2013/12/22 职场文书
写给女朋友的道歉信
2014/01/08 职场文书
财产公证书样本
2014/04/04 职场文书
2014党的群众路线教育实践活动总结报告
2014/10/31 职场文书
责任书格式
2015/01/29 职场文书
2015年员工工作表现评语
2015/03/25 职场文书
大学军训口号大全
2015/12/24 职场文书
Python如何解决secure_filename对中文不支持问题
2021/07/16 Python
了解Kubernetes中的Service和Endpoint
2022/04/01 Servers