zoukankan      html  css  js  c++  java
  • 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."

  • 相关阅读:
    Linux基础命令题(ps/ls + grep)
    Operator Overloading in C++
    C++中class和struct的区别
    poj1110double vision搜索
    poj1321棋盘递归搜索
    vim窗口分割/切换
    xclipmore about copy&paste命令行粘贴
    [转载]怎样花两年时间去面试一个人
    最优二叉查找树optimalBSTC++实现
    vim复制粘贴——系统剪贴板
  • 原文地址:https://www.cnblogs.com/wl413911/p/12977160.html
Copyright © 2011-2022 走看看