Python 异常处理

class Python

Python 异常处理

在编程中,异常(Exception)是指程序执行过程中出现的错误或意外情况,这些错误可能会导致程序终止运行。Python 提供了异常处理机制,允许开发者在程序运行过程中捕获和处理异常,从而使程序能够优雅地处理错误而不中断。

1. 异常的基本概念

  • 异常(Exception):异常是指在程序运行时发生的错误,它会导致当前操作失败,并可能导致程序崩溃。
  • 异常处理:异常处理是指捕获和处理异常的过程,使程序能够在遇到错误时采取适当的措施,而不是直接崩溃。

常见的异常类型:

  • SyntaxError:语法错误。
  • IndexError:索引超出范围错误。
  • KeyError:字典中不存在键错误。
  • ValueError:传递给函数的参数类型或值不正确。
  • TypeError:操作或函数应用于不支持的对象类型。

2. try-except 语句

Python 使用 try-except 语句来处理异常。try 块中的代码是可能发生异常的部分,如果发生异常,程序会跳到 except 块中进行处理,而不会终止程序。

基本语法:

try:
    # 可能发生异常的代码
    pass
except ExceptionType as e:
    # 异常处理代码
    pass
finally:
    # 可选的最终执行代码,无论是否发生异常都会执行
    pass

示例:

try:
    result = 10 / 0
except ZeroDivisionError as e:
    print("Error: Cannot divide by zero!")
finally:
    print("This block is always executed.")

# 输出:
# Error: Cannot divide by zero!
# This block is always executed.
  • try:包含可能引发异常的代码。
  • except:包含异常处理代码,可以指定处理特定类型的异常。
  • finally:可选,无论是否发生异常,都会执行的代码块。

3. 自定义异常

除了内置异常类型,Python 还允许开发者定义自己的异常类型。这对于处理特定应用程序中的错误场景非常有用。自定义异常需要继承自内置的 Exception 类。

定义自定义异常类:

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

使用自定义异常:

def check_age(age):
    if age < 18:
        raise MyCustomError("Age must be 18 or older.")
    return True

try:
    check_age(16)
except MyCustomError as e:
    print(f"Caught an exception: {e}")

# 输出: Caught an exception: Age must be 18 or older.
  • raise 语句:用于在程序中手动引发异常。可以在任何代码块中使用 raise 语句,并传递异常对象。

总结

异常处理是编写健壮代码的关键部分,通过使用 try-except 语句,你可以捕获并处理程序运行时的错误,避免程序崩溃。自定义异常使得可以针对特定的错误场景进行处理,从而使程序更加灵活和易于维护。通过掌握这些技术,你可以编写更加健壮、稳定的 Python 程序。

评论区
评论列表
menu