wl413911

python-异常处理

第一种写法

try:

  #正常执行

except (NameError,ValueError,...) as err:

  #处理逻辑

finally:

  #一定会执行的语句,即使try包围的代码

 

第二种写法

try:

  #正常执行

except NameError as err1:

  #处理逻辑

except NameError as err2:

  #处理逻辑

......

finally:

  #一定会执行的语句,即使try包围的代码

 

 

第三种写法

try:

  #正常执行

except NameError as err1:

  #处理逻辑

except NameError as err2:

  #处理逻辑

......

except Exception as errN:   # Exception可以接受所有非系统异常,Exception是其他所有非系统异常的基类

  # 处理逻辑

finally:

  #一定会执行的语句,即使try包围的代码

 

第四种写法

try:

  #正常执行

except NameError as err1:

  #处理逻辑

except NameError as err2:

  #处理逻辑

......

except:   #可以接受所有异常,包括系统异常

  # 处理逻辑

finally:

  #一定会执行的语句,即使try包围的代码

 

 

抛出异常 语句:

  用户自定义异常 MyInputError

  
    class MyInputError(Exception):
        """Exception raised when there're errors in input"""
        def __init__(self, value): # 自定义异常类型的初始化
           self.value = value
        def __str__(self): # 自定义异常类型的string表达形式
            return ("{} is invalid input".format(repr(self.value)))
    
    try:
        raise MyInputError(1) # 抛出MyInputError这个异常
    except MyInputError as err:
        print('error: {}'.format(err))

 

# 当一个异常被捕获处理之后,在except语句执行到最后时,该异常就会被清除(引用该异常的变量(就是except Except as err,这里的err)不能再被使用,否则会抛出‘NameError’异常

"When an exception has been assigned using as target, it is cleared at the end of the except clause."

 

posted on 2020-05-28 11:07  wl413911  阅读(120)  评论(0编辑  收藏  举报