专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »Python » python教程:简明 Python 教程 -- 第13章 异常 »正文

python教程:简明 Python 教程 -- 第13章 异常

来源: 发布时间:星期四, 2009年1月8日 浏览:21次 评论:0
  当你中出现某些 异常 状况时候异常就发生了例如当你想要读某个文件时候而那个文件不存在或者在运行时候你不小心把它删除了上述这些情况可以使用异常来处理

  假如你中有些无效语句会如何样呢?Python会引发并告诉你那里有从而处理这样情况

  

  考虑个简单pr语句假如我们把pr误拼为Pr注意大写这样Python会 引发 个语法

>>> Pr 'Hello World'
   File "<stdin>", line 1
    Pr 'Hello World'
             ^
SyntaxError: invalid syntax
  >>> pr 'Hello World'
Hello World
  我们可以观察到有个SyntaxError被引发并且检测到位置也被打印了出来这是这个 处理器 所做工作

  try..except

  我们尝试读取用户段输入按Ctrl-d下会发生什么

>>> s = raw_input('Enter something --> ')
Enter something --> Traceback (most recent call last):
  File "<stdin>", line 1, in ?
EOFError
  Python引发了个称为EOFError这个基本上意味着它发现个不期望 文件尾 (由Ctrl-d表示)

  接下来我们将学习如何处理这样

  处理异常

  我们可以使用try..except语句来处理异常我们把通常语句放在try-块中而把我们处理语句放在except-块中

  例13.1 处理异常

#!/usr/bin/python
# Filename: try_except.py
  import sys
  try:
   s = raw_input('Enter something --> ')
except EOFError:
   pr ' Why did you do an EOF _disibledevent= 0:
      
     time.sleep(2)
     pr line,
finally:
   f.close
   pr 'Cleaning up...closed the file'
  (源文件:code/finally.py)



  输出

$ python finally.py
Programming is fun
When the work is done
Cleaning up...closed the file
Traceback (most recent call last):
  File "finally.py", line 12, in ?
   time.sleep(2)
KeyboardInterrupt
  它如何工作

  我们进行通常读文件工作但是我有意在每打印行的前用time.sleep思路方法暂停2秒钟这样做原因是让运行得慢些(Python由于其本质通常运行得很快)运行时候按Ctrl-c中断/取消

  我们可以观察到KeyboardInterrupt异常被触发退出但是在退出的前finally从句仍然被执行把文件关闭

  概括

  我们已经讨论了try..except和try..finally语句使用方法我们还学习了如何创建我们自己异常类型和如何引发异常

  接下来我们将探索Python标准库



相关文章

读者评论

发表评论

  • 昵称:
  • 内容: