Python 异常处理实例详解
在Python编程中,我们经常会遇到各种各样的错误,有些错误是可以被我们预测到的,比如除数为0的错误,有些错误则是我们无法预测的,比如文件读写错误。对于这些错误,我们可以使用异常处理机制来控制。
异常简介
Python的异常是一种标准的错误处理机制。当程序遇到错误时,Python会自动抛出异常。我们可以通过处理异常来控制程序的行为。异常处理机制是指当程序遇到错误时,可以将错误信息打印出来,或者指定程序应该如何处理此类错误。
try与except语句
Python的异常处理机制基于try与except语句。在try块中,我们可以放置可能会抛出异常的语句。如果抛出了异常,那么我们就可以在except块中捕获这个异常,进行相关处理。
try:
# 可能会抛出异常的语句
except:
# 处理异常的代码
使用这个语法,在try块中的语句会被依次执行,如果某个语句引发了异常,那么就会跳过该语句执行后面的语句,直到出现一个except语句。
异常的种类
Python中有非常多的内置异常。这里我们列出几个经常用到的异常。
- IndexError:下标越界异常,当我们试图访问列表、元组、字符串等序列中不存在的位置时,就会触发这个异常。
lst = [1, 2, 3]
print(lst[10])
# 输出结果:
# IndexError: list index out of range
- KeyError:字典中不存在指定的键时,就会触发这个异常。
dict = {"name": "Jack", "age": 18}
print(dict["gender"])
# 输出结果:
# KeyError: 'gender'
- ZeroDivisionError:除数为0时触发这个异常。
a = 1
b = 0
c = a/b
# 输出结果:
# ZeroDivisionError: division by zero
示例1:错误处理机制的基本使用
下面是一个计算两个数的商的程序。如果除数为0,那么就会抛出一个ZeroDivisionError异常。我们可以使用try与except语句来捕获这个异常,并对用户进行提示。
def divide(x, y):
try:
result = x/y
except ZeroDivisionError:
print("除数不能为0。")
else:
print("两个数的商为:", result)
divide(10, 2)
divide(10, 0)
输出结果:
两个数的商为: 5.0
除数不能为0。
示例2:自定义异常
我们可以通过继承Exception类,定义自己的异常类,来实现更自定义化的异常处理。
class MyException(Exception):
def __init__(self, value):
self.value = value
def __str__(self):
return repr(self.value)
try:
raise MyException("自定义异常")
except MyException as e:
print("捕获到自定义异常:", e.value)
输出结果:
捕获到自定义异常: '自定义异常'
以上就是Python 异常处理实例详解的全部内容。通过这篇文章,你应该能够熟练运用Python的异常处理机制了。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python 异常处理实例详解 - Python技术站