python try 异常处理(史上最全)

yizhihongxing

Python Try-Except 异常处理指南

Python 中的异常处理是一种用于处理程序出现错误和异常情况的技术。在开发过程中,程序出现错误是一种必然情况,通过合理的异常处理,能够使我们的程序更加稳定和健壮。本文将介绍 Python 中关于异常处理的知识点。

异常概述

异常是指在程序运行时发生的错误,例如访问不存在的变量、除数为零、调用不存在的方法等。当异常出现时,程序就会停止运行并抛出异常。Python 中提供了简便的处理异常的代码框架,即 try 和 except 语句。

try-except 语句

Python 中 try-except 语句的基本结构如下:

try:
    # 尝试执行的代码块
except ExceptionType:
    # 发现指定类型异常时执行的代码块

try 语句块中执行某个任务时,如果发生了预设范围内的异常,程序就跳入 except 代码块,进行相应的处理。

以下是 try-except 的示例:

try:
    a = 100 / 0
except ZeroDivisionError:
    print("除数为零")

以上代码中,程序会尝试除以 0,这时就会引发一个 ZeroDivisionError 异常,程序就会跳入 except 代码块,输出“除数为零”这条信息。

可以用来处理的异常类型很多,例如 NameError、TypeError、ValueError、FileNotFoundError 等。可以使用 except Exception 代替指定的单个异常类型,当发生任意一种异常时,就跳入 except 代码块。

try-except-else 语句

当使用 try-except 语句时,有时可能希望在没有发生错误时执行某个代码块,可以使用 try-except-else 来实现:

try:
    # 尝试执行的代码块
except ExceptionType:
    # 发现指定类型异常时执行的代码块
else:
    # 没有发生异常时执行的代码块

以下是 try-except-else 的示例:

try:
    a = 3
    b = 2
    c = a + b
except:
    print("发生了一个异常")
else:
    print("没有发生异常")

程序中 a 和 b 可以成功相加,所以不会跳入 except 代码块。于是程序会执行 else 代码块中的内容,“没有发生异常”就会输出。

try-except-finally 语句

有时候无论程序是否出现异常,都需要执行一段代码,try-except-finally 就可以做到这一点:

try:
    # 尝试执行的代码块
except ExceptionType:
    # 发布指定类型异常时执行的代码块
finally:
    # 最后一定要执行的代码块

以下是 try-except-finally 的示例:

try:
    a = 8
    b = 2
    c = a / b
except:
    print("发生了一个异常")
finally:
    print("完成异常处理")

程序中 a 和 b 可以成功相加,所以不会跳入 except 代码块。无论是否出现异常,finally 代码块都会被执行,输出“完成异常处理”。

自定义异常

在 Python 中,我们可以自己定义一些异常类型,来适应程序中的一些特定问题。自定义异常需要从 BaseException 类或者其子类中继承。以下是自定义异常的代码示例:

class MyException(Exception):  
    def __init__(self, message):  
        Exception.__init__(self)  
        self.message = message  

try:  
    raise MyException("自己的异常类型")  
except MyException as e:  
    print(e.message)  

以上代码中,MyException 类继承 Exception,自定义了一个名为 message 的属性,用于存储异常信息。使用 raise 语句抛出 MyException 类型异常,最终得到的结果就是打印出 message 中的“自己的异常类型”。

小结

Python 中的异常处理能够帮助我们处理那些在编写程序过程中出现的问题。使用 try-except-else 或 try-except-finally 等语句,可以帮助我们更好地管理异常。自定义异常可以让我们针对程序中的不同问题达到更好的解决效果。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python try 异常处理(史上最全) - Python技术站

(0)
上一篇 2023年5月13日
下一篇 2023年5月13日

相关文章

  • Python 可迭代对象

    Python中的可迭代对象指的是可以被迭代的数据类型,如列表、元组、字典等。对于可迭代对象,我们可以使用for循环进行遍历,也可以使用内置函数如map()、filter()来对可迭代对象进行操作。下面我将为您详细介绍Python中可迭代对象的使用方法。 如何判断一个对象是否是可迭代的 在Python中,我们可以使用iter()函数判断一个对象是否是可迭代的。…

    python-answer 2023年3月25日
    00
  • IE和firefox浏览器的event事件兼容性汇总

    以下是针对“IE和firefox浏览器的event事件兼容性汇总”的完整攻略。 1. 了解IE和Firefox浏览器的事件模型差异 在IE浏览器中,事件模型采用的是Bubbling冒泡型事件,而在Firefox浏览器中,采用的是Capturing捕获型事件。 Bubbling模型是从事件所触发的元素开始向外层元素(即document对象)传递,而Captur…

    python 2023年6月13日
    00
  • 详解Python PIL ImageDraw.Draw.ellipse()

    Python PIL(Python Imaging Library)是Python的图像处理库,提供了众多的图像处理功能,其中包括绘制圆形的功能。PIL提供了一个可以在图像上绘制各种几何图形的模块,名字叫做ImageDraw。在ImageDraw模块中,有一个方法可以绘制圆形,即Draw.ellipse()方法。 方法格式 绘制圆形的方法格式如下: Draw…

    python-answer 2023年3月25日
    00
  • pyhton列表转换为数组的实例

    Python列表转换为数组的实例 在Python中,列表是一种有序的可变序列,可以包含任意类型的元素。有时候,我们需要将列表转换为数组,以便在其他编程语言中使用。本攻略将详细介绍如何将Python列表转换为数组。 使用numpy库将列表转为数组 在Python中,可以使用numpy库将列表转为数组。numpy是一个Python科学计算库,提供了高性能的多维对…

    python 2023年5月13日
    00
  • Python爬取网页中的图片(搜狗图片)详解

    接下来我将为您详细讲解“Python爬取网页中的图片(搜狗图片)详解”的完整攻略。 标题 1. 确定爬取目标 要爬取搜狗图片,我们需要先确定要爬取的页面以及其中的图片。在本例中,我们将使用如下链接作为目标: https://pic.sogou.com/pics?query=%E7%BE%8E%E5%A5%B3%E5%9B%BE%E7%89%87 此链接指向一…

    python 2023年5月14日
    00
  • Python 惰性求值

    Python 惰性求值是一种编程技术,它可以在需要时生成程序序列,而不是在程序开始时生成。这种技术通常可以用于处理大数据集或者无限序列。在 Python 中,可以使用生成器(generator)来实现惰性求值。下面将介绍如何使用 Python 惰性求值。 惰性求值的基本概念 惰性求值又叫做 “延迟求值”(lazy evaluation),它是一种计算模式,只…

    python-answer 2023年3月25日
    00
  • Java程序中实现调用Python脚本的方法详解

    Java程序中实现调用Python脚本的方法详解 在Java程序的开发过程中,有时需要调用Python脚本来完成一些任务,比如数据分析、机器学习等。本文将详细介绍Java程序中实现调用Python脚本的方法,以及具体的实现过程和示例说明。 1. 调用Python脚本的方式 Java程序中调用Python脚本有多种方式,比如使用ProcessBuilder或者…

    python 2023年6月3日
    00
  • python文件目录操作之os模块

    下面是关于Python文件目录操作的os模块的详细攻略。 什么是os模块 os模块提供了访问操作系统功能的接口,包括文件操作、目录操作、进程管理、环境变量设置等。 常用的os模块功能如下: os.getcwd():获取当前工作目录。 os.chdir(path):改变当前工作目录。 os.listdir(path):返回指定目录下的所有文件和目录名。 os.…

    python 2023年5月14日
    00
合作推广
合作推广
分享本页
返回顶部