python异常

一、异常处理的结构

try:
    # 可能引发异常的代码块
    pass
except SomeException as e:
    # 处理特定异常的代码块
    pass
except AnotherException as e:
    # 处理另一种特定异常的代码块
    pass
except:
    # 处理所有其他异常的代码块
    pass
else:
    # 如果没有发生异常,执行的代码块
    pass
finally:
    # 无论是否发生异常,都会执行的代码块
    pass

try:包含可能引发异常的代码块。
except:用于捕获和处理特定类型的异常。可以有多个 except 块来处理不同类型的异常。
else:在没有发生异常时执行的代码块。
finally:无论是否发生异常,都会执行的代码块。通常用于清理操作,如关闭文件或释放资源。

二、捕获异常

使用except关键字,如何捕获特定类型的异常?

常见的内置异常:

  • ZeroDivisionError:除零错误。
  • ValueError:值错误。
  • TypeError:类型错误。
  • FileNotFoundError:文件未找到错误。
  • IndexError:索引错误。
  • KeyError:键错误。
  • IOError:输入输出错误。
  • NameError:指定的对象名不存在
  • SyntaxError:语法无效

三、抛出异常

Python允许程序员自己触发异常,可以通过 raise关键字来实现。

1.抛出内置异常

def divide(a, b):
    if b == 0:
        raise ZeroDivisionError("Cannot divide by zero")
    return a / b

try:
    result = divide(10, 0)
except ZeroDivisionError as e:
    print(e)

2.抛出自定义异常

class CustomError(Exception):
    def __init__(self, message):
        self.message = message
        super().__init__(self.message)

def check_value(value):
    if value < 0:
        raise CustomError("Value must be non-negative")

try:
    check_value(-1)
except CustomError as e:
    print(e)
© 版权声明
THE END
喜欢就支持一下吧
点赞8 分享