• Python学习笔记之try-except


    Python使用被称为异常的特殊对象来管理程序执行期间发生的错误。每当发生让Python不知所措的错误时,它都会创建一个异常对象。如果你编写了处理该异常的代码,程序将继续运行;如果你未对异常进行处理,程序将停止,并显示一个traceback,其中包含有关异常的报告。

    异常是使用try-except代码块处理的。try-except代码块让Python执行指定的操作,同时告诉Python发生异常时怎么办。使用了try-except代码块时,即便出现异常,程序也将继续运行:显示你编写的友好的错误消息,而不是抛出原始错误traceback信息。

    下面举个例子:

    在division.py中写入下面代码:

    print(5/0)

    意思就是把5除以0的结果打印出来,但是我们都知道0是不能作为除数的,所以这个肯定是会报错的。

     执行结果如下:

    1 Traceback (most recent call last):
    2   File "division.py", line 1, in <module>
    3     print(5/0)
    4 ZeroDivisionError: division by zero

    返回了一个Traceback信息,在文件"division.py"的第1行有一个异常,异常对象为ZeroDivisionError,异常原因是:division by zero,并且停止运行程序。

    这显然不是我们所希望的。

    当你认为可能发生了错误时,可编写一个try-except代码块来处理可能引发的异常。你让Python尝试运行一些代码,并告诉它如果这些代码引发了指定的异常,该怎么办。

    从上面的异常信息中,我们知道了是异常对象类型为ZeroDivisionError,要处理这类异常的try-except代码块可以这样写:

    1 try:
    2     print(5/0)
    3 except ZeroDivisionError:
    4     print("除数不能为0")

    将引起异常的代码print(5/0)放在try中运行,如果try代码块中的代码运行起来没有问题,Python将跳过except代码块;如果try代码块中的代码导致了错误,Python将查找这样的except代码块,并运行其中的代码,即其中指定的错误与引发的错误相同。

    在这个示例中,try代码块中的代码引发了ZeroDivisionError异常,因此Python指出了该如何解决问题的except代码块,并运行其中的代码。这样,用户看到的是一条友好的错误消息,而不是traceback:

    1 除数不能为0
  • 相关阅读:
    BOOST 线程完全攻略
    BOOST 线程完全攻略
    BOOST 线程完全攻略
    BOOST 线程完全攻略
    Boost线程库学习笔记
    BOOST中如何实现线程安全代码
    多线程 AfxBeginThread 与 CreateThread 的区别
    AfxBeginThread的介绍/基本用法
    淘宝开源项目
    数据库中间件OneProxy and onemysql
  • 原文地址:https://www.cnblogs.com/rainights/p/11765617.html
Copyright © 2020-2023  润新知