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

Python中使用异常处理的示例

发布时间:2023-12-04 03:15:34

异常处理是在程序执行过程中遇到异常情况时,通过捕获异常并采取相应措施来保证程序的正常执行。Python提供了try-except语句来实现异常处理。

下面是一个使用异常处理的示例,展示了Python中常见的异常情况及相应的处理方法。

# 1. 异常捕获及打印异常信息
try:
    num1 = 10
    num2 = 0
    result = num1 / num2
except ZeroDivisionError:
    print("除数不能为零")

# 2. 捕获多个异常类型
try:
    lst = [1, 2, 3]
    print(lst[3])
    result = 10 / 0
except IndexError:
    print("索引超出列表范围")
except ZeroDivisionError:
    print("除数不能为零")

# 3. 捕获所有异常类型
try:
    result = 10 / 0
except Exception as e:
    print("发生异常:", e)

# 4. 处理特定异常以及使用else子句
try:
    num = int(input("请输入一个整数:"))
    result = 10 / num
except ValueError:
    print("输入的值不是整数")
except ZeroDivisionError:
    print("除数不能为零")
else:
    print("计算结果:", result)

# 5. 使用finally子句进行清理工作
try:
    file = open("test.txt", "r")
    content = file.read()
    print(content)
except FileNotFoundError:
    print("文件不存在")
finally:
    file.close()

# 6. 抛出自定义异常
def divide(x, y):
    if y == 0:
        raise ValueError("除数不能为零")
    return x / y

try:
    result = divide(10, 0)
except ValueError as e:
    print("发生异常:", e)

# 7. 自定义异常类
class MyError(Exception):
    def __init__(self, message):
        self.message = message

try:
    raise MyError("发生自定义异常")
except MyError as e:
    print("自定义异常:", e.message)

以上示例中,我们使用了try-except语句来捕获不同的异常情况,并通过相应的处理代码来处理这些异常。其中,第1个示例演示了捕获ZeroDivisionError异常,并打印相关提示信息。第2个示例捕获了IndexError和ZeroDivisionError两种异常类型,并分别打印相关提示信息。第3个示例使用了Exception作为异常类型,用于捕获所有异常类型,并打印异常信息。第4个示例展示了同时处理多种异常类型,并使用else子句来处理没有发生异常的情况。第5个示例在finally子句中进行了文件的关闭操作。第6个示例抛出了自定义异常,并进行了相应的处理。最后一个示例演示了如何定义一个自定义异常类。