设为首页 收藏本站
查看: 1074|回复: 0

[经验分享] Python中的异常处理

[复制链接]

尚未签到

发表于 2017-4-25 08:55:53 | 显示全部楼层 |阅读模式
  与许多面向对象一样,python具有异常处理,通过使用try...except来处理异常,而通过raise来引发异常。
  异常在 Python中无处不在;实际上在标准 Python库中的每个模块都使用了它们,并且 Python自已会在许多不同的情况下引发它们。例如:


  • 使用不存在的字典关键字
    将引发 KeyError异常。
  • 搜索列表中不存在的值 将引发
    ValueError异常。
  • 调用不存在的方法 将引发
    AttributeError异常。
  • 引用不存在的变量
    将引发 NameError异常。
  • 未强制转换就混用数据类型
    将引发 TypeError异常。
  然而,一个异常不一定会引起程序的完全崩溃。当异常引发时,可以被 处理
掉。有时候一个异常实际是因为代码中的 bug
(比如使用一个不存在的变量),但是许多时候,一个异常是可以预计的。如果你打开一个文件,它可能不存在。如果你连接一个数据库,它可能不可连接或没有访问所需的正确的安全证书。如果知道一行代码可能会引发异常,你应该使用一个
try...except块来处理异常。下面是一个异常处理的例子:

try:
fsock = open("/notthere")      
except IOError:                     
print "The file does not exist, exiting gracefully"
print "This line will always print"
  除了处理实际的错误条件之外,对于异常还有许多其它的用处。在标准 Python库中一个普通的用法就是试着导入一个模块,然后检查是否它能使用。导入一个并不存在的模块将引发一个 ImportError异常。可以使用这种方法来定义多级别的功能,依靠在运行时哪个模块是有效的,或支持多种平台
(即平台特定代码被分离到不同的模块中)。例如:

  try:
import termios, TERMIOS                     
except ImportError:
try:
import msvcrt                           
except ImportError:
try:
from EasyDialogs import AskPassword
except ImportError:
getpass = default_getpass           
else:                                   
getpass = AskPassword
else:
getpass = win_getpass
else:
getpass = unix_getpass
   要是想了解更多的关于异常处理的东西,可以阅读 PythonLibrary Reference。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-368867-1-1.html 上篇帖子: [转载]Python中文问题研究 下篇帖子: Python与AS3 socket连接
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表