zoukankan      html  css  js  c++  java
  • 7.1Python异常处理

    目录

    前言

    我们写的python程序,经常会出现异常与错误,从而导致我们的程序崩溃,今天我们就来学习一下python的异常处理,以便日后的编写流畅的代码。

    (一)常见的异常

    说明 错误类型
    语法错误 09.png
    除零异常 01.png
    名称异常 02.png
    类型异常 03.png
    索引异常 04.png
    键异常 05.png
    值异常 06.png
    属性异常 07.png
    迭代器异常 08.png

    上面的这些异常都是继承:Exception对象。

    (二)异常的处理

    1.异常的预防:

    (1)说明:

    有些异常时可以避免的,我们可以添加判断语句,来预防避免异常的发生。

    也就是添加容错机制。

    (2)源代码:

    """
        有一些异常我们是可以预防的,其办法是就添加容错机制
    """
    
    
    def div(x, y):
        if y != 0:
            return x/y
        print("请注意分母不能为零")
        return 0
    
    
    div(1, 0)
    

    (3)输出效果:

    10.png

    2.解决已经知道类型的异常

    (1)说明

    解决异常的完整框架:

    try:
    可能出现异常的代码(可以写多个异常的代码,不过只要遇到第一个异常,就结束该部分的代码,跳转到except部分。)

    except 错误类型 [as zero]:
    发生该错误类型的异常,执行的代码。(可以写多个except 语句并列,从而来接收有可能的异常。)

    else:
    不发生异常,执行的代码。

    finally:
    不管发生与不发生,都有要执行的代码。

    (2)源代码

    try:
        1/0
    
    except ZeroDivisionError as zero:
        print("除零异常", zero)
    
    else:
        print("没有发生异常")
    
    finally:
        print("我最后都是要执行的")
    

    (3)输出效果

    11.png

    3.合并处理多个异常

    (1)说明

    except 后面可以接收元组类型的多个异常类型名。

    except (error1, error2……)

    (2)源代码

    try:
        1/0
        print(name)
    except (ZeroDivisionError, NameError) as zero:
        print("异常类型", zero)
    
    else:
        print("没有发生异常")
    
    finally:
        print("我最后都是要执行的")
    

    (3)输出效果

    11.png

    4处理未知类型的异常

    (1)说明

    由于大部分的异常对象都是继承Exception对象。所以我们可以用Exception来接收未知的错误类型。

    (2)源代码

    try:
        1/0
        print(name)
        
    except Exception as ec:
        print("异常类型", ec)
    
    else:
        print("没有发生异常")
    
    finally:
        print("我最后都是要执行的")
    

    (3)输出效果

    11.png

    (三)with语句

    (1)说明:

    with语句也具有自动的容错机制,这里只记录with语句用于文件的操作。

    (2)源代码:

    """
        高级的文件操作--不需手动关闭文件,并且具有容错机制
    """
    with open("test.txt", "r") as f:
        # f文件对象
        content = f.read()
        print(content)
    

    (3)输出效果:

    test.txt文件内容是:

    1234546
    fldklfj dfkkldjf

    12.png

    作者:Mark

    日期:2019/02/11 周一

  • 相关阅读:
    语文成语的积累
    关于翻译
    关于文常
    语文小说
    语文 散文阅读
    矩佬的博客
    字词
    语文病句
    地理
    寒假某cg的数学卷子....
  • 原文地址:https://www.cnblogs.com/zyg123/p/10362262.html
Copyright © 2011-2022 走看看