跟着lucky老师学Python

第九章 yi'chang

2019-04-01  本文已影响0人  帅气的Lucky

一 概念

  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
上一篇下一篇

猜你喜欢

热点阅读