Python异常处理

在Python中,异常处理是一种重要的编程结构,它允许你在代码运行时检测并响应错误或异常情况。异常处理使得程序在遇到错误时能够优雅地处理这些错误,而不是直接崩溃或终止执行。

下面是根据代码示例来说明:

input_str1 = input("输入数字1:")
input_str2 = input("输入数字2:")
try:
    input_value1 = int(input_str1)
    input_value2 = int(input_str2)
    print(f"输入的数字1是:{input_value1}")
    print(f"输入的数字2是:{input_value2}")
    print(f"数字1除以数字2的结果为:{input_value1 / input_value2}")
except ValueError as e:
    print(f"数值异常", e)
except TypeError as e:
    print(f"类型异常", e)
except ZeroDivisionError as e:
    print(f"除数为零异常", e)
except Exception as e:
    print(f"未知异常", e)
else:
    print(f"没有发现异常")
finally:
    print(f"有没有异常都会执行")
print("程序正常结束")

常见的异常有 ValueError TypeError ZeroDivisionError Exception(可以捕获所有异常,但不提示是什么类型的异常)

try 语句按照如下方式工作:

  • 首先,执行 try 子句(在关键字 try 和关键字 except 之间的语句)。

  • 如果没有异常发生,忽略 except 子句,try 子句执行后结束。

  • 如果在执行 try 子句的过程中发生了异常,那么 try 子句余下的部分将被忽略。如果异常的类型和 except 之后的名称相符,那么对应的 except 子句将被执行。

如果input_str1或input_str2不为数字,会触发ValueError,如果input_str2为0,会触发除ZeroDivisionError。其中else语句在没有触发异常时才执行,finally语句有没有触发异常都会执行。

特别的,用户还可以自定义异常处理:

class LTOne(Exception):
    def __init__(self, msg):
        super().__init__(msg)


while True:
    input_str = input("输入一个正整数:")
    # 这个try except 用来捕获强转为整型时的异常
    try:
        input_value = int(input_str)
        # 这个try except 用来捕获用户自定义的数值小于1的异常
        try:
            if input_value < 1:
                # 抛出异常,并自定义提示信息
                raise LTOne("输入数值小于1")
        except LTOne as e:
            print(f"触发用户自定义LTOne异常", e)
            break
    except ValueError as e:
        print(f"数值异常", e)
        break

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值