第九章 yi'chang

作者: 帅气的Lucky | 来源:发表于2019-04-01 12:52 被阅读0次

    一 概念

    1. 需求:当程序遇到问题时不让程序结束,而越过错误继续向下执行

    2. 主体结构

      try:
          #可能会发生异常的代码块
      except 可能会发生的异常:
          #处理异常
      
    3. 一个 try 语句可能包含多个except子句,分别来处理不同的特定的异常。最多只有一个分支会被执行。

      try:
          print(x)
      except NameError as e:
          print(e)
      except ValueError as e:
          print(e)
      
    4. 一个except子句可以同时处理多个异常,这些异常将被放在一个括号里成为一个元组,例如

      except (RuntimeError, TypeError, NameError) as e:
              pass
      

    使用异常的例子

    while True:
            try:
                x = int(input("Please enter a number: "))
                break
            except ValueError:
                print("Oops!  That was no valid number.  Try again   ")
    

    二 else

    try except 语句还有一个可选的else子句,如果使用这个子句,那么必须放在所有的except子句之后。这个子句将在try子句没有发生任何异常的时候执行**

    格式:

    ​ try……except……else

    try:
        代码块
    except 错误码 as e:
        语句n
    else:
        语句e
    注意:else语句可有可无
    
    try:
        1+2
    except TypeError as v:
        print(v)
    else:
        print('x')
    

    作用:用来检测try语句块中的错误,从而让except语句捕获错误信息并处理

    三 finally

    try 子句里面有没有发生异常,finally 子句都会执行

    def divide(x, y):
        try:
            result = x / y
        except ZeroDivisionError:
            print("division by zero!")
        else:
            print("result is", result)
        finally:
            print("executing finally clause")
    divide(2, 1)
    

    四 抛出异常

    Python 使用 raise 语句抛出一个指定的异常。例如:

    raise NameError('HiThere')
    
    Traceback (most recent call last):
      File "<stdin>", line 1, in ?
    NameError: HiThere
    

    相关文章

      网友评论

        本文标题:第九章 yi'chang

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