关于Python的异常处理:如何从发生异常紧接着处恢复执行
时间:2011-06-09
来源:互联网
Python code
上面是我的代码,该代码用于遍历打印所有的GB2312字符。问题是:有些编码如\xA189是空位,在GB2312中没有使用,这样对这个编码进行decode()时就会导致异常。于是我就进行了异常捕获,可问题没有解决:
比如,上面的代码在从\xA0\xA0开始的几个编码成功的解码后,遇到了\xA1\x89这个不可以被解码的数值,于是就进入了异常。可是我希望的是退出异常后,代码能够继续对\xA190及其之后的代码接着执行,因为后面的数值可以被解码,可是程序没有按照我希望的执行,而是在执行异常处理之后直接退出了。这怎么处理啊???
ef GBKCode(): try: for i in range(0xA0,0xFF): for j in range(0xA1,0xFF): gbk = chr(i)+chr(j) print gbk.decode('gb2312'), except Exception,ex: print hex(i),hex(j) GBKCode()
上面是我的代码,该代码用于遍历打印所有的GB2312字符。问题是:有些编码如\xA189是空位,在GB2312中没有使用,这样对这个编码进行decode()时就会导致异常。于是我就进行了异常捕获,可问题没有解决:
比如,上面的代码在从\xA0\xA0开始的几个编码成功的解码后,遇到了\xA1\x89这个不可以被解码的数值,于是就进入了异常。可是我希望的是退出异常后,代码能够继续对\xA190及其之后的代码接着执行,因为后面的数值可以被解码,可是程序没有按照我希望的执行,而是在执行异常处理之后直接退出了。这怎么处理啊???
作者: XIANXir 发布时间: 2011-06-09
"python使用“异常处理的终止模型”,因为引发异常的try块会在异常发生后立即“过期”。有的语言 使用“异常处理的恢复模型”,完成异常处理后,控制权会返回异常引发点,并从那个位置恢复执行。"
不会吧,我这么倒霉啊!!!??Python真得不能进行异常处理的恢复模型处理吗???
那我可怎么办啊??
不会吧,我这么倒霉啊!!!??Python真得不能进行异常处理的恢复模型处理吗???
那我可怎么办啊??
作者: XIANXir 发布时间: 2011-06-09
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28