练习题:异常处理

考点:

  • 异常处理(try-except-else-finally)
  • 自定义异常
  • 断言(assert)

题目描述: 编写一个Python函数,该函数执行两个整数的除法。函数应接受两个参数:被除数和除数。如果除数为0,则抛出自定义异常 DivisionByZeroError。使用断言来确保输入参数都是整数。如果除法成功,则返回结果;如果发生任何异常,则捕获并打印适当的错误消息。

作答区:

# 请在此处编写你的代码

答案

class DivisionByZeroError(Exception):
    """自定义异常,用于除数为零的情况"""
    pass

def safe_divide(dividend, divisor):
    assert isinstance(dividend, int), "The dividend must be an integer."
    assert isinstance(divisor, int), "The divisor must be an integer."
    
    try:
        result = dividend / divisor
    except DivisionByZeroError as e:
        print(f"Error: {e}")
    except AssertionError as e:
        print(f"AssertionError: {e}")
    else:
        return result
    finally:
        print("Execution of the safe_divide function is complete.")

# 测试代码
try:
    print(safe_divide(10, 2))  # 应该正常打印 5.0
    print(safe_divide(10, 0))  # 应该抛出 DivisionByZeroError 并打印错误信息
except DivisionByZeroError:
    print("Caught a DivisionByZeroError.")

www.jhlxrcw.com
www.jhdyrcw.com
www.jhykrcw.com
www.nbfhrcw.com
www.nbxsx.com

try:
    print(safe_divide(10, 'a'))  # 应该抛出 AssertionError 并打印错误信息
except AssertionError:
    print("Caught an AssertionError.")

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值