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

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 利用pandas将arff文件转csv文件的方法

    将arff文件转为csv文件可分为两步:读取arff文件并将其转换为DataFrame格式,再将DataFrame存储为csv文件。这里给出一个Python利用pandas将arff文件转csv文件的步骤。 1. 转换arff文件为DataFrame Python中有一个称为arff的包可以读取arff文件,但是使用pandas库读取更加方便且易于处理,因此…

    python 2023年5月19日
    00
  • 在Python中获取操作系统的进程信息

    要在Python中获取操作系统(OS)的进程信息,可以使用psutil库。psutil库是一个跨平台的库,可以获取系统、进程、CPU、磁盘、内存等信息。以下是获取OS进程信息的步骤和示例: 步骤1:安装psutil库 如果没有安装psutil库,可以使用以下命令在终端中安装: pip install psutil 步骤2:导入psutil库 导入psutil…

    python 2023年5月30日
    00
  • Python 中pandas.read_excel详细介绍

    以下是“Python中pandas.read_excel详细介绍”的完整实例教程。 一、read_excel函数简介 首先,需要明确的是,pandas库是Python数据分析的中心库之一,提供了许多用于数据处理的函数,包括read_excel函数,它允许用户读取Excel文件并将其转换为DataFrame对象。read_excel()是pandas的一个函数…

    python 2023年5月13日
    00
  • Python随机数random模块使用指南

    下面是“Python随机数random模块使用指南”的详细攻略。 Python随机数random模块使用指南 介绍 Python的random模块提供了生成随机数的基本工具。该模块中的函数可以用于生成随机整数、浮点数、序列等。 函数列表 下面列出了常用的几个函数: random():返回[0.0, 1.0)之间的随机浮点数。 randint(a, b):返回…

    python 2023年6月3日
    00
  • python调用机器喇叭发出蜂鸣声(Beep)的方法

    Python调用机器喇叭发出蜂鸣声(Beep)有多种方法,本文将介绍两种最为常见的方式。 方法一:winsound库 winsound库是Python自带的Windows声音库,其中包含Beep方法,可以直接调用。以下是使用winsound库进行Beep调用的示例代码: import winsound winsound.Beep(500, 1000) # 前…

    python 2023年5月23日
    00
  • python如何为list实现find方法

    在Python中,列表(list)是一种常用的数据结构,它可以存储多个元素。但是,Python中的列表并没有提供find()方法,这使得我们在查找列表中的元素时较麻烦。本文将详细讲解如何Python中的列表实现find()方法,并给出两个示例说明。 实现方法 为Python中的列表实现find()方法,可以使用Python中的类(class)来实现。具体步骤…

    python 2023年5月13日
    00
  • Python:我如何使用 isumeric() [重复]

    【问题标题】:Python: how do I use isnumeric() [duplicate]Python:我如何使用 isumeric() [重复] 【发布时间】:2023-04-05 15:07:01 【问题描述】: 有人能解释一下为什么下面会抛出异常吗?我应该如何处理变量s 来确定它是否包含数字? s = str(10) if s.isnume…

    Python开发 2023年4月5日
    00
  • Python OrderedDict字典排序方法详解

    以下是详细讲解“Python OrderedDict字典排序方法详解”的完整攻略。 1. 什么是Python的OrderedDict? 字典是Python中常用的数据结构之一,字典中的键是无序的,但是值是有序的。而Python的collections模块中提供了OrderedDict类,它是一个有序的字典,并且支持字典的所有操作。 OrderedDict中的…

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