Python处理异常
2017-05-04 21:42
267 查看
一个引子:
文件scatch.txt的内容:
Man:Hi.
Woman:Hi.
Man:How are you?
Woman:I'm fine,thank you.And you?
Man:I'm file,too.
Woman:Okay.hi:
执行以下语句后:
提示错误:
修改如下:
可用help查到split的用法:
maxsplit是可选参数,表示分割一个字符串最多几次。1表示最多分割两次,分成两部分。
另外:find()方法可以查找字符串中某字符的位置,找不到返回-1,找到就返回其索引位置。
if not each_line.find(':') == -1
……
其中“not”关键字,会将条件的值取反。
=================================
要处理大量意外的情况,最好的方法是增加额外的逻辑来进行处理。或者只需在各个错误确实发生时分别处理相应的错误。
处理异常
Python通过trackback来告诉你运行时发生了某种意外情况。运行时错误叫做异常(exception)
Python允许你在异常发生时捕获异常,这就为你提供了一个机会,从这个错误中恢复,最重要的是可以避免崩溃。
通过控制程序的运行时行为,你可以(尽可能地)确保你的Python程序在面对大多数运行时错误时是健壮的。
放过错误:
对于上面这个程序最好能忽略不符合期望格式的数据航。如果split()方法调用导致一个异常,可以报告这是一个错误并使用pass继续执行代码。
不需要继续做些什么。
pass语句(可以把它认为是空语句或null语句)
特定指定异常:
数据不符合期望的格式时会出现ValueError。
数据无法正常访问时会出现IOError(例如,可能你的数据文件已经被移走或者重命名)
文件scatch.txt的内容:
Man:Hi.
Woman:Hi.
Man:How are you?
Woman:I'm fine,thank you.And you?
Man:I'm file,too.
Woman:Okay.hi:
执行以下语句后:
data = open('scatch.txt') for each_line in data: (role,line_spoken) = each_line.split(':') print(role,end='') print(' said:',end='') print(line_spoken,end='')
提示错误:
修改如下:
for each_line in data: (role,line_spoken) = each_line.split(':',1) print(role,end='') print(' said:',end='') print(line_spoken,end='')split()方法返回一个字符串列表,这会赋至一个目标标识符列表。这称为多重赋值(multiple assignment)
可用help查到split的用法:
maxsplit是可选参数,表示分割一个字符串最多几次。1表示最多分割两次,分成两部分。
另外:find()方法可以查找字符串中某字符的位置,找不到返回-1,找到就返回其索引位置。
if not each_line.find(':') == -1
……
其中“not”关键字,会将条件的值取反。
=================================
要处理大量意外的情况,最好的方法是增加额外的逻辑来进行处理。或者只需在各个错误确实发生时分别处理相应的错误。
处理异常
Python通过trackback来告诉你运行时发生了某种意外情况。运行时错误叫做异常(exception)
Python允许你在异常发生时捕获异常,这就为你提供了一个机会,从这个错误中恢复,最重要的是可以避免崩溃。
通过控制程序的运行时行为,你可以(尽可能地)确保你的Python程序在面对大多数运行时错误时是健壮的。
放过错误:
对于上面这个程序最好能忽略不符合期望格式的数据航。如果split()方法调用导致一个异常,可以报告这是一个错误并使用pass继续执行代码。
不需要继续做些什么。
pass语句(可以把它认为是空语句或null语句)
for each_line in data: try: (role,line_spoken) = each_line.split(':',1) print(role,end='') print(' said:',end='') print(line_spoken,end='') except: pass
特定指定异常:
try: data = open('scatch.txt') for each_line in data: try: (role,line_spoken) = each_line.split(':',1) print(role,end='') print(' said:',end='') print(line_spoken,end='') except ValueError: pass data.close() except IOError: print("The file is missing")
数据不符合期望的格式时会出现ValueError。
数据无法正常访问时会出现IOError(例如,可能你的数据文件已经被移走或者重命名)
相关文章推荐
- Python异常处理
- python 异常处理总结
- python-文件、异常处理、with else
- Python学习笔记整理(十七)异常处理
- python基础之异常处理
- python笔记(十) - 异常和文件处理
- python 异常处理
- python中异常处理之esle,except,else
- python_处理输入异常技巧
- Python 文件 和 异常处理
- python异常处理
- python异常处理救命代码
- Python爬虫入门五之URLError异常处理
- python的异常处理机制
- Python异常处理操作实例详解
- Python之异常处理、模块与包
- Python引发异常,raise()及异常处理
- python异常处理(三)---------------抛出异常、自定义异常, 传递异常疑问ing
- Python中异常处理
- Python异常处理体系