程序员求职经验分享与学习资料整理平台

网站首页 > 文章精选 正文

Python 中的异常处理(python 异常处理方法)

balukai 2025-04-09 14:08:41 文章精选 9 ℃

程序运行时可能会出现错误。我们可以在程序崩溃之前,使用 异常处理处理 这些错误。这确保了即使出现问题,程序也能平稳运行。

什么是异常?

一个 异常 是在程序执行期间发生的错误。当发生异常时,Python 停止程序 并显示错误消息。

常见异常类型:

ZeroDivisionError – 当除以零时 ValueError – 当尝试使用错误类型的值时 FileNotFoundError – 当文件不存在时 IndexError – 当访问列表中的无效索引时 KeyError – 当访问字典中缺失的键时 TypeError – 当对错误类型的数据执行操作时

处理异常使用try和except

为了防止程序崩溃,使用tryexcept

基本示例:

try:
    num = int(input("Enter a number: "))
    result = 10 / num
    print("Result:", result)
except ZeroDivisionError:
    print("Error: You cannot divide by zero!")
except ValueError:
    print("Error: Please enter a valid number!")

说明:

  • 尝试块运行代码。
  • 如果发生错误,except捕获 它并打印一条消息。

处理多个异常

可以使用多个except块来处理不同的错误。

try:
    data = [1, 2, 3]
    print(data[5])  # This will cause IndexError
except IndexError:
    print("Error: Index is out of range!")
except KeyError:
    print("Error: Key not found in dictionary!")

只有匹配的异常块才会运行。

使用except处理任何错误

我们可以使用except Exception来捕获任何错误。

try:
    x = 10 / 0
except Exception as e:
    print("An error occurred:", e)

这在我们不确定可能发生哪种错误时很有用。

使用else和finally

else – 如果没有错误发生

try:
    num = int(input("Enter a number: "))
    print("You entered:", num)
except ValueError:
    print("Error: Invalid input!")
else:
    print("No errors occurred!")

else 块仅在未发生异常时运行。

finally– 无论怎样都会运行

try:
    file = open("test.txt", "r")
    print(file.read())
except FileNotFoundError:
    print("Error: File not found!")
finally:
    print("This will always run!")

最终用于关闭资源,如文件或数据库。

引发自定义异常

我们可以使用raise创建我们自己的异常。

def check_age(age):
    if age < 18:
        raise ValueError("You must be at least 18 years old.")
    else:
        print("Access granted!")
try:
    check_age(16)
except ValueError as e:
    print("Error:", e)

在程序中设置规则时很有用。

结论

关键要点:

  • 使用 tryexcept捕获错误
  • 处理 多个异常 分别。
  • 使用except Exception进行通用错误处理
  • 使用else表示仅在未发生错误时运行的代码。
  • 使用finally进行清理任务。
  • 使用 raise 创建 自定义异常

Tags:

最近发表
标签列表