Python十类常见异常类型(附捕获以及异常处理方式)_python 获得系统异常

81 阅读3分钟

3.NameError

当尝试访问一个未定义的变量时,会抛出NameError异常。
例如:

print(x)

这个例子中,我们尝试打印变量x的值,但是x没有被定义,因此会引发NameError异常。

4.IndexError

当尝试访问列表、元组或字符串中不存在的索引时引发。
例如:

a = [1, 2, 3]
print(a[3])

这个例子中,我们试图访问列表a的第四个元素,但是a只有三个元素,因此会引发IndexError异常。

5.KeyError

当尝试访问字典中不存在的键时引发。
例如:

d = {'a': 1, 'b': 2}
print(d['c'])

这个例子中,我们试图访问字典d中不存在的键’c’,因此会引发KeyError异常。

6.ZeroDivisionError

当尝试除以零时引发。
例如:

a = 5 / 0

这个例子中,我们试图将5除以0,这是不允许的,因为除数不能为零,因此会引发ZeroDivisionError异常。

7.IOError

当尝试读取不存在的文件或无法访问文件时引发。
例如:

f = open('nonexistent\_file.txt', 'r')

这个例子中,我们试图打开一个不存在的文件nonexistent_file.txt,因此会引发IOError异常。

8.ImportError

当尝试导入不存在的模块或包时引发。
例如:

import nonexistent_module

这个例子中,我们试图导入一个不存在的模块nonexistent_module,因此会引发ImportError异常。

9.AttributeError

当尝试访问对象不存在的属性时引发。
例如:

s = 'hello'
print(s.uppercase())

这个例子中,我们试图调用字符串s的不存在的方法uppercase(),因此会引发AttributeError异常。

10.KeyboardInterrupt

当用户中断程序执行时引发。
例如:

while True:
    try:
        x = input('Enter a number: ')
        break
    except KeyboardInterrupt:
        print('You pressed Ctrl+C!')

这个例子中,我们在一个无限循环中等待用户输入一个数字,但是如果用户按下Ctrl+C,程序会引发KeyboardInterrupt异常,我们可以捕获这个异常并打印一条消息。

异常捕获以及处理

在Python中,可以使用try-except语句来捕获异常并进行处理。try语句块中包含可能会出现异常的代码,如果出现异常,则会跳转到except语句块中进行处理。可以使用多个except语句块来处理不同类型的异常,也可以使用一个except语句块来处理所有类型的异常。

例如:

try:
    x = 1 / 0
except ZeroDivisionError:
    print("除以0错误")

除了使用内置的异常类型,还可以自定义异常类型。自定义异常类型通常继承自Exception类或其子类。例如:

class MyException(Exception):
    pass

try:
    raise MyException("自定义异常")
except MyException as e:
    print(e)

在Python中,还可以使用finally语句块来定义无论是否出现异常都需要执行的代码。例如:

try:
    x = 1 / 0
except ZeroDivisionError:
    print("除以0错误")
finally:
    print("finally语句块")

总结

以上是Python中常见的异常类型和异常处理方法。在编写程序时,应该尽可能地避免出现异常情况,同时也应该合理地处理可能出现的异常。

↓ ↓ ↓ 下方辣条名片,各种源码+案例 ↓ ↓ ↓

在这里插入图片描述

最后

🍅 硬核资料:关注即可领取PPT模板、简历模板、行业经典书籍PDF。
🍅 技术互助:技术群大佬指点迷津,你的问题可能不是问题,求资源在群里喊一声。
🍅 面试题库:由技术群里的小伙伴们共同投稿,热乎的大厂面试真题,持续更新中。
🍅 知识体系:含编程语言、算法、大数据生态圈组件(Mysql、Hive、Spark、Flink)、数据仓库、Python、前端等等。

了解详情:docs.qq.com/doc/DSnl3ZG…