StandardError 和 LookupError
2011-3-1 更新。
赖勇浩(http://laiyonghao.com)
今晚没事,就读了一下 python manuals,找到了几个之前疏忽的知识点,其中就有 StandardError 和 LookupError。
StandardError
StandardError 继承自 Exception,它是除了 StopIteration、GeneratorExit、KeyboardInterrupt 和 SystemExit 之外的所有内置异常类的父类。之前我常用写这样的代码:
class MyError(Exception): pass
现在想来,其实是不对的,应该使用 StandardError 作为 MyError 的基类。另外,虽然我用 except Exception 这样的代码很少,不过在这里讲一下,大部分应该用 except StandardError。
LookupError
我不知道大家有没有写过这样的代码。。
try: i = t[1] except IndexError: i = default
某年某月某日,t 的类型从 list 之类的序列容器改成了 dict,太操蛋了,要把所有的 IndexError 都改为 KeyError。我做过几次这种事,当时把龟叔暗骂了若干次……好吧,现在我知道这是我的错了。LookupError 是 IndexError 和 KeyError 的基类,也就是说如果上面的代码是 except LookupError 的话,t 的类型变了也不用改代码。哇呒~
嗯,今晚看手册,除了这个收获以后,还有一些其它的知识点,不过现在太晚了,我改天再说吧。
嗯,真是温故知新啊,手册要多读!
StandardError 和 LookupError相关推荐
- LookupError: unknown encoding: uft-8
这个错误是记录错误类型的,第一次遇到LookupError ,这个是编码格式本来应该是utf-8 自己打字的时候打错了,打成uft-8 了 所以就出现了这个错误.
- 编译pqxx源码configure时遇到codecs.py LookupError的解决方法
之前第一次编译的时候没有出现问题,第二次重新编译时./configure报错: File "/usr/lib/python2.7/posixpath.py", line 73, i ...
- 关于LookupError: No installed app with label ‘admin‘.报错的解决
LookupError: No installed app with label 'admin'. 报错原因:在INSTALLED_APPS中没有找到admin应用 我的项目目录 解决:需要将apps ...
- 配置mysql数据库时出再错误:LookupError No installed app with label admin(亲测)
版本: windows10+py37+django2.2 错误: 项目启动时出现,No installed app with label 'admin' 解决办法: 安装最新的 pip install ...
- LookupError: unknown encoding: utf-8
python打包后运行exe报错:LookupError: unknown encoding: utf-8 pip uninstall enum34 命令卸载掉enum34 这个包,然后删掉之前打包生 ...
- LookupError: unknown encoding: cp65001及命令行无法输入中文问题(转)
今天在win10下装完python和pip后,发现在python中运行任何指令都会报错--"LookupError: unknown encoding: cp65001"的错误提示 ...
- LookupError: Resource omw-1.4 not found. nltk3.7查找近反义词解决方法
在运用nltk3.7查找同近义词时,发现自己运行代码后会报错: LookupError: Resource omw-1.4 not found. 这里解决方式很简单:只需要加一行即可. import ...
- 安装Python出现LookupError: unknown encoding: GB2312错误的解决方法
在Linux源码安装Python的时候,有可能会遇到LookupError: unknown encoding: GB2312错误,这里介绍两种解决方法: 方法一: 这是由于编码的原因,在./conf ...
- 终端运行pip提示:LookupError: unknown encoding: cp65001 解决方案
错误提示 原因 解决方案 持续报错 错误提示 原因 脚本试图打印的Unicode字符不能使用当前控制台字符编码表示, 解决方案 cp65001就是utf-8, 所以需设置环境变量编码格式为utf-8, ...
最新文章
- 一种注册表沙箱的思路、实现——注册表的一些基础知识
- 万引大佬自曝这样被MIT拒掉:“系里不喜欢你”,找校长对峙后悟了
- Java并发——线程间通信与同步技术
- linux 自定义目录,linux – cron命令的自定义目录
- 【转载】绝对干货!Linux小白最佳实践:《超容易的Linux系统管理入门书》(连载九)如何通过源代...
- Dubbo-Admin 功能展示与实操解析
- java语言中的数据类型_Java语言中关于数据类型的一些总结
- Web Application:Exploded和Web Application:Archive
- php开发uki引流脚本,UKI引流脚本
- Oracle 或关闭中国研发中心(CDC):裁员 1600 人
- 防止重复提交表单的两种方法
- 【尚硅谷_数据结构与算法】一、数据结构与算法概述
- 拓嘉启远:拼多多行家心得评论的作用
- 01、如何用DAP仿真器下载程序
- 你不知道的 React 最佳实践
- MySQL外网连接不上
- Kubernetes(K8s)-k8s服务安装
- Java实验7《字符串和文本I/O 》
- 2021年5月国产数据库排行榜:阿里系“OPA”持续攀升,华为“高斯模式”获成功...
- uniapp 监听网络情况