Python学习17:异常处理(一)
来源:互联网 发布:婚姻记录查询软件 编辑:程序博客网 时间:2024/06/07 20:46
1、try ... except ...
我们可以使用try..except
语句来处理异常。我们把通常的语句放在try-块中,而把我们的错误处理语句放在except-块中。
当试图读入一个用户输入时,用户按下了Ctrl + d,Python会跑出异常
>>> try:s = input('请输入一个字符串:')except EOFError:print('\nEOFError异常处理:用户输入过程产生异常')
当以只读的方式打开一个不存在文件的时候会跑出IOError异常:因此:
#尝试以只读的方式打开一个不存在的文件,并进行异常处理try: fp = open('file.txt','r')except IOError: print("异常处理:打开文件file.txt失败")
#尝试以写入的方式打开一个不存在的文件,并进行异常处理try: fp = open('file.txt','w') #打印一个没有定义的变量,跑出NameError异常 print(name) except IOError: print("异常处理:打开文件file.txt失败")except NameError: print('异常处理:变量name没有定义') #在捕获的异常中处理 name = 'jiezhj' #写入一行 fp.write(name + '\n') fp.write(name) fp.write(name) fp.write(name) fp.close()
异常的抛出机制:
1、如果在运行时发生异常,解释器会查找相应的处理语句(称为handler).
2、要是在当前函数里没有找到的话,它会将异常传递给上层的调用函数,看看那里能不能处理。
3、如果在最外层(全局“main”)还是没有找到的话,解释器就会退出,同时打印出traceback以便让用户找到错误产生的原因。
#FileName : except.py#定义一个方法用于打开文件def func(FileName): try: #以只读的方式打开文件FileName fp = open(FileName,'r') except NameError: print('异常处理:函数内部异常') except IOError: print('func异常处理:文件hello.txt打开错误!')#定义一个方法用于调用方法funcdef callFunc(): try: #传递文件名 func('hello.txt') except IOError: print('callFunc异常处理:文件hello.txt打开错误!') callFunc()
异常被func方法中的except截获:
将方法func中的异常处理注释掉之后,异常会向调用方法func的函数中抛出
#FileName : except.py#定义一个方法用于打开文件def func(FileName): try: #以只读的方式打开文件FileName fp = open(FileName,'r') except NameError: print('异常处理:函数内部异常') #将fun中的异常处理注释掉# except IOError:# print('func异常处理:文件hello.txt打开错误!')#定义一个方法用于调用方法funcdef callFunc(): try: #传递文件名 func('hello.txt') except IOError: print('callFunc异常处理:文件hello.txt打开错误!') callFunc()
让try..catch
块关联上一个else
从句。当没有异常发生的时候,else
从句将被执行。
0 0
- Python学习17:异常处理(一)
- Python学习17:异常处理(二)
- Python学习17:异常处理(三)自定义异常类
- [Python]异常处理技术(一)
- Python-异常处理try(一)
- Python学习笔记(4)--异常处理
- Python异常处理的学习(1)
- python学习笔记(九)异常处理
- JAVA学习笔记(一)---异常处理
- 异常处理 学习笔记(一)
- laravel 学习笔记一 (异常处理)
- Python学习笔记系列(一):异常
- Python学习笔记--异常处理
- python学习之异常处理
- Python学习笔记--异常处理
- Python学习笔记--异常处理
- Python学习VII --- 异常处理
- Python学习笔记 异常处理
- IOS开发 沙盒中的文件操作和文件系统NSFilemanager的操作
- Oracle定时执行计划任务
- 关于++运算符的问题
- 模板方法模式
- 数据仓库与数据库
- Python学习17:异常处理(一)
- psp开发------helloworld
- visual_studio2012、vs2012下载
- 分配器与STL容器
- drupal 中使用theme(table)实例
- Android基础知识总结兼面试吐槽
- 有效的STL
- ubuntu下搭建ruby on rails环境
- 强引用 弱引用