• Python异常


    异常

    概念

    • 程序在运行期间,Python解释器遇到了错误,会停止程序额执行,并且提示一些错误信息,这就是异常。
    • 程序停止执行并且提示错误信息这个动作就是抛出异常。

    异常的捕获

    简单的捕获异常

    语法格式:

    try:    
        尝试执行的代码
    except:
        处理异常
    
    • try尝试,下方编写要尝试代码,不确定是否能够正常执行的代码
    • except 如果不是,下面编写失败的代码

    示例代码:

    try:
        num = int(input("请输入数字:"))
    except:
        print("请输入正确的数字")
    
    错误类型捕获
    • 在程序执行时,我们会遇到不同类型的错误,针对不同的错误,做出不同的响应。

    语法格式:

    try:
        尝试运行的代码
    except 错误类型1:
        针对错误类型1进行对应代码处理
    except 错误类型2:
        针对错误类型2进行对应代码处理
    except Exception as e:
        print("未知错误%s" % e)
    
    • 错误类型就是一个单词

    示例代码:

    # 提示用户输入一个整数
    # 使用8除以用户的整数
    try:
        num = int(input("请输入一个整数:"))
    except valueError:
        print("请输入正确的整数")
    except ZeroDivisionError:
        print("除0错误")
    except Exception as e:
        print("未知错误%s" % e)
    

    实际开发中,我们并不可能想到太多的错误,所有要未知错误。

    异常完整写法

    语法格式:

    try:
        尝试运行的代码
    except 错误类型1:
        针对错误类型1进行对应代码处理
    except 错误类型2:
        针对错误类型2进行对应代码处理
    except Exception as e:
        print("未知错误%s" % e)
    else:
        没有异常时执行的代码
    finally:
        无论是否有异常都会执行的代码
    

    示例代码:

    try:
        num = int(input("请输入一个整数:"))
    except valueError:
        print("请输入正确的整数")
    except ZeroDivisionError:
        print("除0错误")
    except Exception as e:
        print("未知错误%s" % e)
    else:
        print("无异常")
    finally:
        print("程序执行完毕了")
    

    异常的传递

    • 当函数或者方法执行出现异常,会将异常传递给主程序,主程序如果没有处理异常,则程序终止。

    示例代码:

    def demo1():
        return int(input("请输入一个整数:"))
    
    def demo2():
        return demo1()
    
    try:
        print(demo2())
    except valueErroe:
        print("请输入正确的整数")
    except Exception as e:
        print("未知错误%s" % e)
    

    抛出异常

    实际开发中,如果需要抛出异常,可以:

    • 创建一个Exception的对象,使用raise关键字抛出异常

    示例代码:

    def input_pwd():
        pwd = input("请输入密码:")
        if len(pwd) >= 8:
            return pwd
        
        exc = Exception("密码长度不够")
        raise exc
    
    try:
        user_pwd = input_pwd()
        print(user_pwd)
    except Exception as e:
        print("发现错误%s" % e)
    

    以上就是本篇文章的内容,如果觉得有所帮助,麻烦点个在看。

  • 相关阅读:
    WCF 无法生成 client
    Powershell profile.ps1 cannot be loaded because its operation is blocked by software restriction policies
    信步拾遗之Windwos Live Writer插件
    Maven setting.xml文件详解(转)
    Maven pom.xml详解(转)
    信步漫谈之Maven—基础介绍
    信步漫谈之Nginx—负载均衡
    信步漫谈之Hibernate—基础介绍
    信步漫谈之Dom4j—基础介绍
    信步拾遗之CHM开源文档制作
  • 原文地址:https://www.cnblogs.com/liudemeng/p/12320752.html
Copyright © 2020-2023  润新知