首页 > 编程语言 >Python 异常处理:掌握错误控制的艺术

Python 异常处理:掌握错误控制的艺术

时间:2024-08-21 20:51:14浏览次数:13  
标签:错误 掌握 Python 捕获 except try print 异常

        在编程的世界里,错误和异常是不可避免的。正确地处理它们是编写健壮、可靠软件的关键。Python 提供了一套强大的异常处理机制,允许我们捕获和处理程序运行时出现的错误。在本文中,我们将探讨 Python 中的异常处理,包括 try-except 块、自定义异常、finally 子句以及异常的传递。

异常的基础知识

        在 Python 中,当发生错误时,会抛出一个异常。如果异常没有被捕获和处理,程序将中断执行并显示错误信息。异常是 Python 对象,它们是 BaseException 类的实例。

try-except 块

try-except 块是 Python 中处理异常的基本结构。你可以将可能引发异常的代码放在 try 块中,并将错误处理代码放在 except 块中。

  • try: 执行有可能出错误的代码
  • except: 捕获到具体的异常,针对性处理
try:
    # 尝试执行的代码
    result = 10 / 0
except ZeroDivisionError:
    # 处理特定异常
    print("不能除以零!")

捕获多个异常

你可以在一个 except 块中捕获多个异常,或者使用多个 except 块来分别处理不同的异常。

try:
    # 可能抛出多种异常的代码
    number = int(input("请输入一个数字:"))
except ValueError:
    print("请输入有效的整数!")
except TypeError:
    print("类型错误!")

捕获所有异常

使用一个空的 except 子句可以捕获所有类型的异常。

try:
    # 可能抛出任何异常的代码
    raise Exception("一个通用异常")
except:
    print("发生了一个异常。")

自定义异常

你可以定义自己的异常类来表示特定的错误情况。

class MyError(Exception):
    pass

try:
    raise MyError("发生了我的错误!")
except MyError as e:
    print(e)

finally 子句

finally 子句是你无论是否发生异常都希望执行的代码块。它通常用于执行清理操作,如关闭文件。简单来讲有没有异常都会执行。

else 子句

else 子句在 try 块没有抛出异常时执行。简单来讲没有异常会执行。

user_input = input('输入数字:')

try:
    user_input = int(user_input)
    print(f'输入的数字为:{user_input}')
except TypeError as e:
    print('类型异常',e)
except ValueError as e:
    print('值转化错误',e)
except ZeroDivisionError as e:
    print('0除错误')
except Exception as e:
    print('通用异常', e)
else:
    print('输入无误!')
finally:
    print(f'有没有异常都会输出:{user_input}')
print('程序正常结束')

异常的传递

你可以使用 raise 关键字来重新抛出当前捕获的异常,或者抛出一个新的异常。

try:
    try:
        # 可能抛出异常的代码
    except FileNotFoundError:
        # 处理异常
        raise  # 重新抛出当前异常
except Exception as e:
    print(f"捕获到一个异常:{e}")

结语

异常处理是 Python 编程中一个不可或缺的部分。通过本文,我们学习了如何使用 try-except 块来捕获和处理异常,如何使用 finally 子句执行清理操作,以及如何使用 raise 关键字来抛出异常。掌握这些技巧,你将能够编写更加健壮和用户友好的 Python 程序。

参考资料

标签:错误,掌握,Python,捕获,except,try,print,异常
From: https://blog.csdn.net/H_Hyyy/article/details/141402168

相关文章

  • 告别 Coding 噩梦-掌握这10个习惯,成为大数据开发高手
    你是否曾在半夜被一个顽固的bug折磨得睡不着觉?是否因为理解不了复杂算法而感到沮丧?别担心,你并不孤单。作为一名经验丰富的大数据开发者,我深知编程之路上的挫折感。但今天,我要和你分享我是如何在这条充满荆棘的道路上找到突破,最终成长为一名得心应手的编程高手的。前......
  • Selenium + Python 自动化测试21(PO+HTML+Mail)
            我们的目标是:按照这一套资料学习下来,大家可以独立完成自动化测试的任务。上一篇我们讨论了PO模式并举例说明了基本的思路,今天我们继续学习。        本篇文章我们综合一下之前学习的内容,如先将PO模式和我们生成HTML报告融合起来,综合的灵活的使用之......
  • Python个人收入影响因素模型构建:回归、决策树、梯度提升、岭回归
    全文链接:https://tecdat.cn/?p=37423原文出处:拓端数据部落公众号“你的命运早在出生那一刻起便被决定了。”这样无力的话语,无数次在年轻人的脑海中回响,尤其是在那些因地域差异而面临教育资源匮乏的年轻人中更为普遍。在中国,这种现象尤为明显:没有生在大城市的他们,从小便需面对教育......
  • VSCode配置python项目
    一、项目的目录结构推荐的Python项目目录结构根目录*README.md:项目描述、安装说明和用法*requirements.txt:项目依赖项(freeze<requirements.txt生成;install-r.vscode/requirements.txt安装)*.gitignore:用于版本控制的忽略文件源代码目录*__init__.py:空文件,指示目录......
  • Python处理生信分析流程配置文件4种方法
    在编写生信分析流程时,通常会通过配置文件来定义一些固定的参数,比如软件路径、参考基因组fasta文件路径、基线路径和阈值参数等。1.ini配置文件文件名称:cconfig.iniINI(Initialization)文件是一种简单的配置文件格式,通常由节(section)、键(key)和值(value)组成,是较为常用的配置......
  • python apscheduler定时任务处理
    ApschedulerApscheduler是一个基于Quartz的python定时任务框架,提供了基于日期、固定时间间隔以及corntab类型的任务,并且可持久化任务。安装apscheduler依赖库pipinstallapschedulerAPScheduler组件:schedulers-调度器triggers-触发器jobstores-作业存储器exec......
  • python 计算list的方差
    python计算list的方差 importnumpyasnp#假设我们有一个包含数值的列表data=[1,2,3,4,5]#计算均值mean=np.mean(data)#计算方差variance=np.var(data)#这将使用默认的N-1作为分母(样本方差)#如果你想要总体方差(使用N作为分母),可以传入ddof=0#var......
  • 使用Python+os模块创建文件和文件夹
    一、使用Python的open函数创建文件#创建文件withopen('/home/Download/my_directory/my_file.txt','w')asf:f.write('世界你好') open(name[,mode[,buffering]])参数详解name:一个包含了你要访问的文件名称的字符串值。mode:mode决定了打开文件的模......
  • python flask 定时器
    安装pipinstallflaskpipinstallflask_apscheduler-ihttps://pypi.tuna.tsinghua.edu.cn/simple/--trusted-hostpypi.tuna.tsinghua.edu.cn使用方法一:使用Config类配置时间规则fromflaskimportFlaskfromflask_apschedulerimportAPSchedulerclassC......
  • 《Python数据分析实战》
    环境搭建定义变量名时要遵循的规则:变量名必须以字母或下画线开始,名字中间只能由字母、数字和下画线组成长度不能超过255个字符变量名在有效范围内必须具有唯一性不能使用保留字(关键字)区分大小写不能对元组中的元素做修改,只能做切片查询。如果元组中只有1个元素,则需要在这......