Python基础知识——异常的介绍和使用

异常

1、概念:程序在运行时,如果 Python 解释器遇到到一个错误,会停止程序的执行,并且提示一些错误信息,这就是异常。

2、异常捕获语法:

try:
    可能出错的代码
except:
    出现错误的处理
  • try 尝试,下方编写要尝试代码,不确定是否能够正常执行的代码
  • except 如果有异常捕获,下方编写捕获到异常,处理失败的代码
  • 如果 try 里面有多个异常,只会捕获到第一个异常

3、错误类型完整捕获语法:

try:
    # 可能出错的代码
    pass
except 错误类型1:
    # 针对错误类型1,对应的代码处理
    pass
except 错误类型2:
    # 针对错误类型2,对应的代码处理
    pass
except (错误类型3,错误类型4):
    # 针对错误类型3和4,对应的代码处理
    pass
except Exception as result:    # 捕获的异常信息会保存在result中
    # 打印错误信息
    print(result)
else:
    # 没有异常才会执行的代码
    pass
finally:
    # 无论是否有异常,都会执行的代码
    print("无论是否有异常,都会执行的代码")

4、常见的错误类型

(1)语法错误:没有遵循Python的语法,在程序编译时报错,容易发现,常见错误有:

  • 关键词拼错 NameError
  • 函数后面没带冒号 SyntaxError
  • 字符串最后没带引号 SyntaxError
  • 括号不匹配 SyntaxError
  • 缩进位置错误 IndentationError

(2)运行时错误:程序在运行时报错,不容易被发现,常见错误有:

  • 分母为0 ZeroDivisionError
  • 整数加字符串 TypeError
  • 使用没有定义的变量名 NameError
  • 调用没有定义的函数 NameError
  • 读取不存在的文件 IOError

(3)逻辑错误:程序运行不报错,编译过程也不报错,就是结果不符合预期,很难发现,常见错误有:

  • 用错变量名
  • 代码缩进错误
  • 用错操作符优先级
  • 用错布尔表达式

5、异常的传递

  • 异常的传递 —— 当函数或方法执行出现异常,会将异常传递给函数或方法的调用一方
  • 如果传递到主程序,仍然没有异常处理,程序才会被终止

6、抛出异常

  • 在开发时,如果满足特定业务需求时,希望抛出异常:
    • 1、创建一个 Exception类的对象
    • 2、使用 raise 关键字抛出异常对象
需求
    定义一个input_password函数,提示用户输入密码
    如果密码长度小于10位,抛出异常
    如果密码长度大于等于10位,返回输入的密码

def input_password():
    password=input("请输入密码:")
    if len(password)<10:
        exp = Exception("密码长度不够")    # 创建异常对象exp,使用异常的错误信息作为参数
        raise exp                         # 抛出异常对象
    else:
        return password

try:
    password = input_password()
    print(password)
except Exception as result:
    print(result)                        # 打印异常信息
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值