美文网首页
Python的错误处理try...except...finall

Python的错误处理try...except...finall

作者: 美妙的旋律A | 来源:发表于2017-01-06 22:12 被阅读0次

捕获错误

try:
    #可能出错的代码
except 错误类型 as e:
    #出错进行的代码
else:
    #不出错才执行的代码
finally:
    #无论是否出错都要进行的代码

错误有很多类型,可以有多个except捕获错误:

try:
    #可能出错的代码
except 错误类型1 as e:
    #出错进行的代码1
except 错误类型3 as e:
    #出错进行的代码2
except 错误类型3 as e:
    #出错进行的代码3

Python的错误其实也是class,所有的错误类型都继承自BaseException,所以在使用except时需要注意的是,它不但捕获该类型的错误,还把其子类也“一网打尽”。
Python常见的错误类型和继承关系

记录错误

使用logging模块,打印错误信息

import logging
try:
    10 / 0 
except ZeroDivisionError as e:
    logging.exception(e)
print("END")

运行结果:

ERROR:root:division by zero
Traceback (most recent call last):
  File "finally.py", line 3, in <module>
    10 / 0
ZeroDivisionError: division by zero
END

自定义错误

错误是一个class,可以选好继承关系自定义错误

#自定义一个FooError继承自ValueError
class FooError(ValueError):
    pass

抛出错误

#raise抛出错误
raise  错误类型

另一种错误处理方式

def foo(s):
    n = int(s)
    if n==0:
        raise ValueError('invalid value: %s' % s)
    return 10 / n

def bar():
    try:
        foo('0')
#错误捕获之后,仅仅记录了下来,然后用raise抛出    
except ValueError as e:
        print('ValueError!')
        raise

bar()

raise不带参数,会把错误原样抛出
except中raise一个Error,还可以把一种类型的错误转化成另一种类型:

try:
    10 / 0
except ZeroDivisionError:
    raise ValueError('input error!')

相关文章

  • Python的错误处理try...except...finall

    捕获错误 错误有很多类型,可以有多个except捕获错误: Python的错误其实也是class,所有的错误类型都...

  • python中try...except...else...fin

    异常处理 python中我们会使用try...except...else...finally...的错误处理机制,...

  • Python学习之错误调试和测试

    在程序运行过程中,总会遇到各种各样的错误,Python内置了一套异常处理机制,来帮助我们进行错误处理。 错误处理 ...

  • python错误、调试和测试

    错误处理 try与其他语言一样,python也有错误捕获的功能 Python的错误其实也是class,所有的错误类...

  • CentOS6升级Python2.6到3.7,错误处理[No m

    CentOS6升级Python2.6到3.7,错误处理[No module named '_ctypes'] 因开...

  • Python学习记录之:错误、调试和测试

    错误处理 常见的错误类型和继承关系看这里:https://docs.python.org/2/library/ex...

  • Python 错误处理

    在程序运行的过程中,如果发生了错误,可以实现约定返回一个错误代码,这样,就可以知道是否有错,以及出错的原因,在操作...

  • 【python】错误处理

    当我们认为某些代码可能会出错时,就可以用try来运行这段代码,如果执行出错,则后续代码不会继续执行,而是直接跳转至...

  • Python 错误处理

    程序在运行的过程中总是会遇到各种各样的问题,有一部分是 BUG,另外一部分我们称之为异常(或错误)。大多数编程语言...

  • 错误、调试和测试

    高级语言通常都内置了一套try...except...finally...的错误处理机制,Python也不例外。 ...

网友评论

      本文标题:Python的错误处理try...except...finall

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