美文网首页生活不易 我用python
Python里的异常处理(上)

Python里的异常处理(上)

作者: 東飛 | 来源:发表于2017-04-15 00:58 被阅读67次

异常意味着出现错误,并且会中断程序的正常控制流。

  • 使用 raise 语句可以引发异常

raise语句的一般格式:

raise Exception([value])
Exception是异常类型,而value是说明异常相关细节的可选值
例如:
raise RuntimeError('Unrecoverable Error')
  • 使用 try...except...语句可以捕获异常

例如:

 try:
    f=open('test')
 except IOError as e:
    print  '处理I/O错误'

    出现异常时,解释器将停止执行try代码块中的语句,并寻找可匹配该异常的except子句。如果找到,控制权就会传递给except子句中的第一条语句。执行完except子句后,控制权就会传递给出现try...except...代码块之后的第一条语句。否则,异常将传递给try语句所在的上一级代码块。

       except语句的可选修饰符as var提供了一个变量名称。如果出现异常,就会在其中放置一个提供给raise语句的异常类型的实例。

注意事项:
# 在以前的版本(Python 2.6)使用下面的except语句,不推荐使用
 except Exception , e:
    pass
# 新的代码使用as var语法:
 except Exception as e:
    pass
使用多条except子句指定多个异常处理代码块
try:
    do something
except IOError as e:
    # 处理I/O错误
except TypeError as e:
    #处理类型错误
except NameError as e:
    #处理名称错误

或者

try:
    do something
except (IOError,TypeError,NameError) as e:
    # 处理I/O、类型或名称错误

使用pass语句忽略异常,不做任何处理
try:
    do something
except IOError:
    pass   
捕获除与程序退出相关异常之外的所有异常

try:
    do something
except Exception as e:
    error_log.write("An error occurred : %s\n" %e)
使用except语句不带任何异常类型,将会捕获所有异常

try:
    do something
except :
    error_log.write("An error occurred \n")
try...except...else 语句
#如果try代码块中的代码没有引发异常,就会执行else子句中的所有代码
try:
    f=open('test','r')
except Exception, e:
    error_log.write("Unable to open test : %s\n" % e) 
else:
    data=f.read()
    f.close()
try...except...finally 语句

finally子句不用与捕获,无论是否出现错误都会执行
try:
    pass
except IOError as e:
    raise e
finally:
    pass

相关文章

  • Python里的异常处理(上)

    异常意味着出现错误,并且会中断程序的正常控制流。 使用 raise 语句可以引发异常 raise语句的一般格式: ...

  • python的异常处理

    Python异常处理

  • Python 异常

    Python 含有异常处理机制来帮助用户处理可能发生的错误异常。 1. 异常概念 异常是指Python程序运行过程...

  • Python里的异常处理(下)

    在出现异常时正确地管理各种系统资源(如文件,锁和链接)通常是一个棘手的问题。例如,引发的异常可能导致控制流跳过释放...

  • Python学习(八)

    异常处理 Python中的异常类型总结: Python内置异常类的层次结构: 异常检测 try-except语句 ...

  • Python黑帽编程2.7 异常处理

    Python黑帽编程2.7 异常处理 Python黑帽编程2.7异常处理 异常是个很宽泛的概念,如果程序没有按预想...

  • Python错误处理机制

    @(python程序员)[Python] Python Cookbook 捕获所有的异常 处理异常的时候最好还会尽...

  • Python异常处理

    Python中文件的操作 Python异常的处理 异常的引发 try⋯finally的使用

  • python学习笔记之--异常处理

    类似于C++/Java等高级语言,python也有异常的处理机制 异常捕获和处理 在python语言中python...

  • (三)python错误与异常&面向对象编程

    python错误与异常 语法错误与定位 异常捕获、异常处理 try:xxxexcept: 自定义异常 python...

网友评论

    本文标题:Python里的异常处理(上)

    本文链接:https://www.haomeiwen.com/subject/ywggattx.html