请选择 进入手机版 | 继续访问电脑版

我爱科技论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 340|回复: 2

[技术分享] 【Python学习】对异常的处理机制

[复制链接]

696

主题

743

帖子

7586

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
7586

最佳新人活跃会员热心会员推广达人宣传达人灌水之王突出贡献优秀版主荣誉管理论坛元老

发表于 2018-4-28 19:20:53 | 显示全部楼层 |阅读模式
1.异常的抛出
  1. # encoding=UTF-8
  2. class ShortInputException(Exception):
  3.     '''一个由用户定义的异常类'''
  4.     def __init__(self, length, atleast):
  5.         # 让这个自定义的异常继承于Exception类
  6.         Exception.__init__(self)
  7.         self.length = length
  8.         self.atleast = atleast

  9. try:
  10.     text = input('Enter something --> ')
  11.     if len(text) < 3:
  12.         # 抛出异常
  13.         raise ShortInputException(len(text), 3)


  14. # 其他工作能在此处继续正常运行
  15. except EOFError:
  16.     print('Why did you do an EOF on me?')
  17. except ShortInputException as ex:
  18.     print(('ShortInputException: The input was ' +
  19.            '{0} long, expected at least {1}')
  20.           .format(ex.length, ex.atleast))
  21. else:
  22.     print('No exception was raised.')
复制代码
2.异常的处理
  1. try :
  2.     text = input('Enter something -->')
  3. except EOFError:
  4.     print('EOF error')
  5. except KeyboardInterrupt:
  6.     print('KeyboardInterrupt error')
  7. else:
  8.     print('You entered {}'.format(text))
复制代码
3.异常的Finally
  1. import sys
  2. import time


  3. f = None
  4. try:
  5.     # 打开文件
  6.     f = open("poem.txt")
  7.     # 我们常用的文件阅读风格
  8.     while True:
  9.         # 开始读取文件
  10.         line = f.readline()
  11.         if len(line) == 0:
  12.             break
  13.         print(line, end='')
  14.         # 使得控制台中输出与的内容可以立马显示出来
  15.         sys.stdout.flush()
  16.         print("Press ctrl+c now")
  17.         # 为了确保它能运行一段时间
  18.         # time.sleep 函数任意在每打印一行后插入两秒休眠
  19.         time.sleep(2)
  20. except IOError:
  21.     print("Could not find file poem.txt")
  22. except KeyboardInterrupt:
  23.     print("!! You cancelled the reading from the file.")
  24. finally:
  25.     if f:
  26.         # 关闭文件流
  27.         f.close()
  28. print("(Cleaning up: Closed the file)")
复制代码






上一篇:【Python学习】Python面向对象编程
下一篇:我爱科技轮官方QQ群介绍
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案; 如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题加上【已解决】。
回复过本主题
的还回复过:

6

主题

20

帖子

49

积分

新手上路

Rank: 1

积分
49
发表于 2018-9-13 18:28:17 | 显示全部楼层
不错
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案; 如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题加上【已解决】。
回复

使用道具 举报

0

主题

39

帖子

82

积分

注册会员

Rank: 2

积分
82
发表于 2019-1-7 19:00:52 | 显示全部楼层
路过看看
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案; 如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题加上【已解决】。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

微信扫一扫

快速回复 返回顶部 返回列表