Python中异常处理用法

Python中的异常处理是一种处理程序在出现错误时的控制结构,它允许程序员预测异常产生的可能性,并且根据情况处理这些异常,从而保证程序在遇到错误时仍然能够正常运行,而不是立即崩溃终止。

异常的基本使用方法

  • 我们可以使用try...except语句来捕获异常,并进行处理:
try:
    # 尝试执行的代码块
except:
    # 如果代码块执行出现异常,执行此代码块
  • 上述代码中,try语句块中的代码尝试执行,如果执行中出现异常,则跳转到except语句块中执行,except可以捕获多个不同类别的异常:
try:
    # 尝试执行的代码块
except ValueError:
    # 如果代码块执行出现值错误,执行此代码块
except ZeroDivisionError:
    # 如果代码块执行出现除零错误,执行此代码块
except:
    # 如果代码块执行出现其他错误,执行此代码块
  • 上述代码中,如果try语句块中的代码出现值错误,则跳转到第一个except语句块,并执行其中的代码,如果出现其他异常,则跳转到最后一个except语句块处理。

异常的应用示例

示例1:输入数字并分别处理输入错误、除零错误

下面的示例中,我们要求用户输入两个数字,程序会计算它们的商并输出。在输入过程中,可能会出现值错误(输入非数字)和除零错误(输入的第二个数字为零),我们将分别捕获这两种异常并进行处理:

while True:
    try:
        num1 = int(input('请输入第一个数字:'))
        num2 = int(input('请输入第二个数字:'))
        result = num1 / num2
        print(f'{num1} / {num2} = {result}')
        break
    except ValueError:
        print('输入格式错误,请重新输入数字!')
    except ZeroDivisionError:
        print('输入的第二个数字不能为零,请重新输入!')

在上述代码中,我们使用了while True语句块无限循环等待用户输入,当输入成功后,尝试计算并输出商,如果输入过程中出现值错误,则执行第一个except语句块,输出错误提示信息,然后重新等待并尝试输入;如果输入过程中出现除零错误,则执行第二个except语句块,提示用户重新输入。

示例2:打开文件并捕获文件读取错误

下面的示例中,我们要求用户输入文件路径和文件名,如果输入正确,则打开文件并输出其中的内容;如果输入错误,抛出文件读取错误,并输出错误信息和默认文本:

def read_file():
    try:
        file_path = input('请输入文件路径:')
        file_name = input('请输入文件名:')
        with open(f'{file_path}/{file_name}', 'r') as f:
            content = f.read()
            print(content)
    except FileNotFoundError:
        print(f'读取文件{file_name}失败,文件不存在!')
        print('输出默认文本:')
        print('这是默认文本,没有找到文件的时候输出这个。')
    except:
        print('文件读取发生未知错误!')

read_file()

在上述代码中,我们使用了with语句打开文件,当文件读取成功后,读取其中的内容并输出;如果文件不存在,则抛出FileNotFoundError异常,并执行第一个except语句块;如果出现未知错误,则执行第二个except语句块输出相应信息。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python中异常处理用法 - Python技术站

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

相关文章

  • Python asyncio异步编程常见问题小结

    Python asyncio异步编程常见问题小结 简介 异步编程是现代编程技术中的一个重要概念,它让我们的代码在请求等待过程中能够快速响应其他请求,提升了程序的执行效率。Python在3.4版本开始引入了asyncio库,支持异步I/O操作和并发编程,为Python的异步编程提供了强有力的支持。本篇文章将对Python asyncio异步编程常见问题进行梳理…

    python 2023年5月13日
    00
  • Python学习笔记之装饰器

    Python学习笔记之装饰器 什么是装饰器? 装饰器是 Python 的一种高级语法,它允许在运行时动态扩展函数或类的功能。装饰器是对函数或类的修饰,可以在不修改这些对象的前提下,为它们添加新的功能或更改其原有的功能。 装饰器的使用场景? 日志记录 性能测试 接口鉴权 缓存 事务处理 装饰器的语法 def decorator(func): def wrapp…

    python 2023年6月3日
    00
  • Python函数式编程指南:对生成器全面讲解

    Python函数式编程指南:对生成器全面讲解 什么是函数式编程? 函数式编程(Functional Programming)是一种编程范式,它是过程化编程和面向对象编程之外的第三种主流编程范式。 函数式编程强调的是函数的运算和结果,而不是计算的过程。它采用数学中的函数概念,避免使用状态和可变数据,以达到消除副作用的目的。 什么是生成器? 生成器是 Pytho…

    python 2023年6月3日
    00
  • win8下python3.4安装和环境配置图文教程

    在Windows 8操作系统下,我们可以使用以下步骤安装Python 3.4并配置环境。 1. 下载Python 3.4安装包 我们可以从Python官网下载Python 3.4的安装包。下载地址为:https://www.python.org/downloads/release/python-340/ 2. 安装Python 3.4 双击下载的Python…

    python 2023年5月15日
    00
  • 解决Python 出现File “<stdin>“, line 1非语法错误的问题

    当在Python交互式环境中输入语句时,有时会出现提示“File“<stdin>“,line 1”,这并不是语法错误。这种情况一般是因为发生了以下两种情况之一: 1.输入了一段多行的代码,但没有以空行结束。 2.输入了一个没有结束的括号或引号。 针对第一种情况,可以通过在代码末尾敲入一个空行来解决。 针对第二种情况,可以在对应的行上检查并确认是否漏写了一个闭…

    python 2023年5月13日
    00
  • python 实现批量xls文件转csv文件的方法

    下面是详细的讲解“Python 实现批量 xls 文件转 csv 文件的方法”的攻略: 1. 准备工作 在开始代码实现前,需要确保你已经安装了 pandas 和 xlrd 这两个库。 你可以通过以下的命令行安装它们: pip install pandas pip install xlrd 2. 代码实现 导入需要的库 我们首先需要导入需要用到的库: impo…

    python 2023年6月3日
    00
  • Python实现自定义顺序、排列写入数据到Excel的方法

    下面是Python实现自定义顺序、排列写入数据到Excel的方法的完整实例教程。 1. 准备工作 在开始写代码之前,我们需要安装Python的openpyxl库。可以使用以下命令进行安装: pip install openpyxl 然后,开启Python环境,使用以下代码导入openpyxl库: import openpyxl 2. 读取Excel文件 在对…

    python 2023年5月14日
    00
  • Python hashlib加密模块常用方法解析

    Python hashlib加密模块常用方法解析 在Python中,hashlib是一个非常有用的加密模块,它提供了多种不同的哈希函数,包括MD5、SHA-1、SHA-224、SHA-256、SHA-384和SHA-512等。这些哈希函数可以用来对数据进行加密保护,以保证数据的安全性。 下面将对Python hashlib加密模块常用方法进行详细讲解。 ha…

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