python 异常处理 12

  当python程序在执行期间发生错误时,如果编写了处理该异常的代码,程序将继续运行;如果未对异常进行处理,程序将停止并显示traceback,其中包含有关异常的报告。异常是使用try- except代码块处理的。告诉python发生异常进怎么办,在try-except代码块中出现异常,程序也将继续运行:显示你缩写的友好的错误消息,而不是令用户迷惑的traceback。

  异常类型很多,如ZeroDivisionError,TypeError等,基类是Exception。

 

1.使用try -- except代码块

  下面是一个示例

try:
    print(5/0)
except ZeroDivisionError:
    print('you cannot divide by zero!')

  

 2.使用else代码块

  当try代码块成功执行后,会再执行到else代码块中,如下所示:

try:
    print(5/1)
except ZeroDivisionError:
    print('you cannot divide by zero!')
else:
    print('ok')

 3.处于多个异常

  一个except子句可以同时处理多个异常,这些异常将被放在一个括号里成为一个元组,例如:

try:
    print(5/0)
except (ZeroDivisionError,TypeError):
    print('you cannot divide by zero!')

 

4.except子句

  最后一个except子句可以忽略异常的名称,它将被当作通配符使用。可以使用这种方法打印一个错误信息。

try:
    print(5/0)
except TypeError:
    print('TypeError!')
except :
    print('you cannot divide by zero!')

 5. try-finally语句

  try-finally 语句无论是否发生异常都将执行最后的代码。 

try:
    print(5/0)
except ZeroDivisionError:
    print('TypeError!')
finally :
    print('这句话,无论异常是否发生都会执行。')

 

6.抛出异常raise

  示例一,使用raise抛出

try:
    try:
        print(5/0)
    except ZeroDivisionError:
        raise  #抛出异常
except Exception as e:
    print(f'捕获:{e}')

  示例二,指定抛出的异常类型和消息,

try:
    try:
        print(5/0)
    except ZeroDivisionError:
        raise  Exception('除数不能为0') #抛出的异常类型
except Exception as e:
    print(f'捕获:{e}')

 

posted on 2022-12-26 12:26  花阴偷移  阅读(31)  评论(0编辑  收藏  举报

导航