Python十类常见异常类型总结(附捕获及异常处理方式)

 更新时间:2023年06月19日 10:08:58   作者:五包辣条!  
在编写程序时难免会遇到错误,有的是编写人员疏忽造成的语法错误,有的是程序内部隐含逻辑问题造成的数据错误等等,这篇文章主要给大家介绍了关于Python十类常见异常类型总结的相关资料,文中还附捕获及异常处理方式,需要的朋友可以参考下

前言

今天给大家讲讲我们刚开始写代码是都会出现的问题-我们刚开始常见的异常以及处理方法!

异常是指在程序运行过程中出现的错误或异常情况,例如除以0、访问不存在的变量等。Python提供了一些内置的异常类型,同时也支持自定义异常类型。

十类异常

1.TypeError

当操作或函数应用于不适当类型的对象时引发。

例如:

a = 5 + '10'

这个例子中,我们试图将整数5和字符串’10’相加,这是不允许的,因为它们是不同的类型。

2.ValueError

当函数或操作的参数具有正确的类型但不合法时引发。

例如:

int('abc')

这个例子中,我们试图将字符串’abc’转换为整数,但是’abc’不是一个有效的整数,因此会引发ValueError异常。

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中常见的异常类型和异常处理方法。在编写程序时,应该尽可能地避免出现异常情况,同时也应该合理地处理可能出现的异常。

到此这篇关于Python十类常见异常类型总结的文章就介绍到这了,更多相关Python十类异常类型内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 利用Python Difflib库强大的文字比较功能快速轻松查重

    利用Python Difflib库强大的文字比较功能快速轻松查重

    这篇文章主要介绍了利用Python Difflib库强大的文字比较功能快速轻松查重实例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2024-01-01
  • Python OpenCV超详细讲解图像堆叠的实现

    Python OpenCV超详细讲解图像堆叠的实现

    OpenCV用C++语言编写,它具有C ++,Python,Java和MATLAB接口,并支持Windows,Linux,Android和Mac OS,OpenCV主要倾向于实时视觉应用,并在可用时利用MMX和SSE指令,本篇文章带你通过OpenCV实现图像堆叠
    2022-04-04
  • Python logging日志模块使用指南

    Python logging日志模块使用指南

    Python 的 logging 模块提供了标准的日志接口,可以通过它存储各种格式的日志,日志记录提供了一组便利功能,用于简单的日志记录用法,本文就给大家简单的介绍一下Python logging日志模块使用方法,需要的朋友可以参考下
    2023-08-08
  • Python 时间操作datetime详情(下)

    Python 时间操作datetime详情(下)

    我们在上一文datetime模块对datetime模块中包含了六个类对象如date、time、datetime等对时间和日期进行操作。这一篇文章我们继续上一篇文章的内容学习datetime模块中六大类的相关方法和属性
    2021-11-11
  • Python "手绘风格"数据可视化方法实例汇总

    Python "手绘风格"数据可视化方法实例汇总

    这篇文章主要给大家介绍了关于Python "手绘风格"数据可视化方法实现的相关资料,本文分别给大家带来了Python-matplotlib手绘风格图表绘制、Python-cutecharts手绘风格图表绘制以及Python-py-roughviz手绘风格图表绘制,需要的朋友可以参考下
    2022-02-02
  • 解决PDF 转图片时丢文字的一种可能方式

    解决PDF 转图片时丢文字的一种可能方式

    这篇文章主要介绍了解决PDF 转图片时丢字的一种可能方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • 基于python实现获取网页图片过程解析

    基于python实现获取网页图片过程解析

    这篇文章主要介绍了基于python实现获取网页图片过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-05-05
  • 教你实现Ubuntu安装Python

    教你实现Ubuntu安装Python

    这篇文章主要为大家介绍了Ubuntu安装Python的实现过程详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-06-06
  • Python实现的微信支付方式总结【三种方式】

    Python实现的微信支付方式总结【三种方式】

    这篇文章主要介绍了Python实现的微信支付方式,结合实例形式总结分析了Python实现的三种微信支付方式及相关操作步骤、原理、注意事项,需要的朋友可以参考下
    2019-04-04
  • 基于Python实现人脸识别相似度对比功能

    基于Python实现人脸识别相似度对比功能

    人脸识别技术是一种通过计算机对人脸图像进行分析和处理,从而实现自动识别和辨认人脸的技术,随着计算机视觉和模式识别领域的快速发展,人脸识别技术取得了长足的进步,本文给大家介绍了基于Python实现人脸识别相似度对比功能,感兴趣的朋友可以参考下
    2024-01-01

最新评论