Python 异常处理:try...except 语句详解
Python 是一门灵活且广泛应用的编程语言。在开发过程中,代码可能会因各种不可预见的因素出现异常,例如输入格式错误、文件不存在、除数为零等。为了保障程序的稳定性和可靠性,Python 提供了完善的异常处理机制。本文将详细介绍如何使用 try...except 语句来捕获和处理异常,确保程序在遇到错误时能够优雅地响应,而不是直接崩溃。
1. 基础异常处理结构
Python 使用 try...except 语句块来处理异常。try 块中包含可能引发异常的代码,一旦执行过程中发生异常,程序会立即跳转到对应的 except 块进行处理,后续 try 块中的代码将不再执行。
try:
num = int(input("请输入一个整数:"))
print("您输入的数字是:", num)
except:
print("输入错误,请重新输入!")
在上述示例中,int() 函数会将字符串转换为整数。如果用户输入非数字字符,会触发 ValueError 异常。此时程序不会崩溃,而是执行 except 块中的打印语句。
2. 指定异常类型
虽然可以使用通用的 except 捕获所有异常,但最佳实践是指定具体的异常类型,以便针对性地处理不同错误。Python 内置了多种标准异常类。
try:
num1 = int(input("请输入第一个整数:"))
num2 = int(input("请输入第二个整数:"))
result = num1 / num2
print("两数相除的结果是:", result)
except ValueError:
print("输入错误,请输入有效的整数!")
except ZeroDivisionError:
print("错误:除数不能为 0!")
except Exception as e:
print(f"发生了未知异常:{e}")
这里分别处理了 ValueError(类型转换失败)和 ZeroDivisionError(除零错误)。最后使用 Exception 作为兜底捕获其他未预料的错误,并打印异常详情。
3. else 子句的使用
try...except 结构还可以包含 else 子句。else 块中的代码只有在 try 块没有发生任何异常时才会执行。这有助于将可能出错的代码与正常逻辑分离,提高代码可读性。


