欢迎访问宙启技术站
智能推送

except语句与自定义异常

发布时间:2023-06-12 11:18:38

一、except语句

在Python中,异常是在程序运行时出现的错误或问题。如果不加处理的话,异常可能会导致程序崩溃。tryexcept语句组合可以帮助我们处理异常,让程序在发生错误的情况下也能正常运行。

try语句用于包裹可能触发异常的代码块,在try语句中的代码如果发生异常,Python会停止执行这些代码,并且转而执行except语句中的代码,从而维持程序的正常运行。

下面是一个例子:

try:
    x = int(input("请输入一个整数: "))
    y = int(input("请输入另一个整数: "))
    z = x / y
    print(z)
except:
    print("出错了!")

在这个例子中,我们尝试让用户输入两个整数并计算它们的商。如果用户输入的是0,程序会发生除零异常,这个异常会触发except语句块中的代码,而不是终止程序运行。

请输入一个整数: 5
请输入另一个整数: 0
出错了!

二、自定义异常

除了Python内置的异常类型以外,我们也可以根据具体情况自定义异常类型。

自定义异常通常需要从 Exception 类继承,然后我们可以为这个类添加额外的方法和属性。在需要捕捉这个异常的地方抛出这个异常即可。

下面是一个例子:

class MyError(Exception):
    def __init__(self, value):
        self.value = value
    
    def __str__(self):
        return str(self.value)

try:
    raise MyError(2 * 2)
except MyError as e:
    print('My exception occurred, value:', e.value)

在这个例子中,我们自定义了一个异常MyError,需要传入一个值。然后我们在try语句块中用raise语句抛出这个异常,接着在except语句中捕捉这个异常并打印出传入的值。

My exception occurred, value: 4

总结:

通过tryexcept语句,我们可以避免程序在出现异常时直接崩溃。而通过自定义异常,我们可以让异常信息更加明确,增强程序的可读性和可维护性。