Python-异常处理机制
来源:互联网 发布:照片后期制作软件 编辑:程序博客网 时间:2024/05/21 22:52
Python的异常处理能力是很强大的,可向用户准确反馈出错信息。在Python中,异常也是对象,可对它进行操作。所有异常都是基类Exception的成员。所有异常都从基类Exception继承,而且都在exceptions模块中定义。Python自动将所有异常名称放在内建命名空间中,所以程序不必导入exceptions模块即可使用异常。一旦引发而且没有捕捉SystemExit异常,程序执行就会终止。如果交互式会话遇到一个未被捕捉的SystemExit异常,会话就会终止。
Python 异常处理方式一:try-except
我们试图打开一个不存在的文件aa.txt
open('aa.txt')程序会Traceback,终止执行
Traceback (most recent call last):
File "<pyshell#1>", line 1, in <module>
f = open('aa.txt')
FileNotFoundError: [Errno 2] No such file or directory: 'aa.txt'
我们会用try-except块来包含可能会抛出异常的代码段,进行异常捕捉处理
try: f = open('aa.txt')except FileNotFoundError as e: print('文件不存在')
执行结果:except块中的代码会被执行
文件不存在
finally块: 如果try块中的代码捕捉到异常,程序会跳转到except块中,try块中剩余的代码遍不在执行。如果没有捕捉到异常,try块中的代码可以完全执行。finally块中的代码,无论有没有捕捉到异常都会被执行
if __name__ == '__main__': try: open('aa.txt') except FileNotFoundError as e: print("文件不存在") finally: print('finally ...')结果一:
文件不存在
finally ...
结果二:
finally ...
try-except-else模块
if __name__ == '__main__': try: open('test.txt') except FileNotFoundError as e: print("文件不存在") else: print("文件存在") finally: print('finally ...')
如果try中没有捕捉到异常,会执行else块中的代码。
结果一:
文件存在
finally ...
结果二:
文件不存在
finally ...
我们还可以对异常进行多次捕捉
import sysif __name__ == '__main__': lst = [0,1] hello = 'aa' try: open('test.txt') print(hello) ##变量hello没有定义,会抛出NameError print(lst[2])##index out of range,抛出IndexError except FileNotFoundError as e: print("文件不存在") except NameError as e: print(e) #except IndexError as e: # print(e) except: print("Unexpected error:", sys.exc_info()[0])如果try中的前两行都没有抛出异常,第三行则会抛出异常,但是在代码中我并没有指定异常类型进行捕捉,程序会执行最后一个except块
aa
Unexpected error: <class 'IndexError'>
Python 异常处理方式二:raise
在一个函数中,我们可能想要抛出一个异常,而不是在这个函数中进行处理
def raise_ex(args): if args == 'err': raise NameError('Invalid name is %s' % args) else: print('name: %s' % args) if __name__ == '__main__': name = input('请输入name:') try: f = raise_ex(name) except NameError as e: print('函数raise_ex抛出异常: %s' % e)结果一:
请输入name:aa
name: aa
结果二:
请输入name:err
函数raise_ex抛出异常: Invalid name is err
- Python-异常处理机制
- Python异常处理机制
- Python异常处理机制
- Python异常处理机制
- python异常处理机制
- Python异常处理机制
- python的异常处理机制
- Python的异常处理机制
- Python的异常处理机制
- 20130714-Python异常处理机制
- python -异常处理机制1
- Python中异常处理机制
- python的异常处理机制
- Python的异常处理机制
- Python 之 异常处理机制
- python的异常处理机制
- Python - Python的异常处理机制
- python(异常处理机制,学习笔记摘要)
- 1409221809-hd-Number Sequence
- iOS开发ASIHttpRequest发送数据
- 107个JS基础知识整理
- 杂
- Jquery 动态生成li标签以及单击事件的绑定
- Python-异常处理机制
- Web开发常用网站
- hibernate调用存储过程
- 控件包含代码块(即 <% ... %>),因此无法修改控件集合。
- 中国股市:雪崩中谁照样狂赚? 对话人:陈宏---国世平
- 在ORACLE 10g登陆创建新用户
- 关于iOS8适配时产生的tableView分割线问题
- 程序(进程)内存分布解析
- IOS6屏幕旋转详解