Python基础_08:异常处理

异常概念

  • 程序在运行时,如果解释器遇到一个错误,就会停止程序的执行,并且提示一些错误信息,这就是异常。
  • 程序停止执行并且提示错误信息这个动作,我们通常称之为:抛出(raise)异常

捕获异常

捕获异常简单形式: try…except

  • 如果对某些代码的执行不能确定是否正确,可以增加try(尝试)捕获异常
  • 语法格式
try:
    语句 # 检测语句是否能够正常执行
except 异常名称:
	出现异常的处理  # 捕获异常
  • 如果try后面的语句可以执行,则不执行except语句
  • 如果出现异常,则执行except语句

常用异常名称

  • BaseException:所有异常错误
  • Exception:常规异常错误
  • ZeroDivisionError:除0异常错误
  • ValueError:值类型错误
实例:
try:
    num = int(input("请输入整数:"))
except ValueError:
    print("输入有误,请重新输入")

捕获多个异常格式:try…except…except

# 方式一
try:
    尝试执行的代码
except 错误类型:
    出现错误的处理
except 错误类型2pass

# 方式二
try:
    尝试执行的代码
except (错误类型1, 错误类型2) as 名称(自定义):
    出现错误的处理
...

实例:
def number(n):
    try:
        num = int(input("请输入整数:"))
        print(num)
        result = num / n
        print(result)
    except ValueError:
        print("输入有误,请重新输入")
    except ZeroDivisionError:
        print("发生除0错误!")


number(0)

捕获异常格式:try…except…else

try:
    执行代码
except:
    发生异常时执行的代码
else:
    没有异常时执行的代码
实例
def divide(x, y):
    try:
        result = x / y
    except ZeroDivisionError:
        print("除数为0,请重新输入")
    else:
        print(f"结果为:{result}")


# number(0)
num = int(input("请输入数字:"))
n = int(input("请输入大于0的整数:"))
divide(num, n)

捕获异常格式:try…except…finally

try:
    执行代码
except 异常名称:
   	发生异常时执行的代码
finally:
    无论是否存在错误,都会执行finally内的代码   
实例:
def f1(num):
    try:
        return int(num)
    except ValueError as e1:
        print(e1)
    finally:
        print("执行结束")

        
n = input("请输入数字:")
f1(n)

捕获未知错误:

except Exception as result:
    print(result)

主动抛出异常

# 需求1
# 1.传入一个参数,判断是否为整型,如果不是则抛出异常
# 2.判断是否大于等于5,如果小于5则抛出异常,终止程序

def f2(num):
    if not isinstance(num, int):
        raise Exception('该参数不是一个整型类型')
    if num < 5:
        raise Exception('该参数小于5')


# 需求2
# 传入若干个参数,判断参数个数如果小于等于5,则抛出异常,终止程序

def f3(*args):  # args可变参数
    if len(args) <= 5:
        raise Exception('参数个数小于等于5')


if __name__ == "__main__":
    # f2('a')
    # f2(4)
    f3(1,2,3,4,5)

assert断言

基本格式:
assert bool_expression [, arguments]
如果 bool_expression 为False,则会抛出arguments 这个自定义异常
如果 bool_expression 为True, 则不会抛出arguments这个自定义异常
实例
def f2(num):
    assert isinstance(num, int), '该参数不是一个整型类型'
    assert num >= 5, '该参数小于5'
    
def f3(*args):  # args可变参数
    assert len(args) > 5, '参数个数小于等于5'
    
if __name__ == "__main__":
    # f2('a')
    # f2(4)
    f3(1,2,3,4,5) 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值