0

0

Python中异常捕获与处理的方法是什么

WBOY

WBOY

发布时间:2023-05-10 20:19:05

|

2330人浏览过

|

来源于亿速云

转载

python异常是在程序执行时发生的错误,可能会导致程序终止运行。

在Python中,异常处理是一种机制,它允许开发人员在程序发生异常时捕获、处理和报告这些异常,以便程序可以继续运行或在出现异常时进行优雅的退出。

在Python中,异常可以是标准异常(例如SyntaxError和TypeError)或自定义异常。标准异常是由Python内部定义的,而自定义异常是由开发人员定义的,通常用于特定的应用程序或库。

以下是一些常见的Python异常:

  • SyntaxError:语法错误,通常是由于语法错误导致的,如缺少括号、冒号等。

    立即学习Python免费学习笔记(深入)”;

  • TypeError:类型错误,通常是由于将不同类型的对象组合在一起而引起的,如将字符串和数字相加。

  • ValueError:值错误,通常是由于提供的值不符合预期的范围或格式而引起的,如将字符串转换为整数时提供的字符串无效。

  • IndexError:索引错误,通常是由于尝试访问列表或元组中不存在的元素而引起的。

  • KeyError:键错误,通常是由于尝试访问字典中不存在的键而引起的。

  • IOError:输入/输出错误,通常是由于尝试读取或写入文件时出现问题而引起的。

  • AttributeError:属性错误,通常是由于尝试访问对象不存在的属性或方法而引起的。

在Python中,可以使用try-except语句来捕获异常并处理它们。try语句包含可能会导致异常的代码,而except语句定义了在捕获异常时要执行的代码。

可以使用多个except语句来捕获不同类型的异常,try-except 还可以跟else 进行搭配,它的含义就是当 try 语句没有检测到任何异常的情况下,就执行 else 语句的内容,另外也可以使用finally语句定义在try语句块之后始终要执行的代码。

例如:

案例1:使用try-except语句来捕获异常并处理它们

举例:

try:100/0 # 可能会导致异常的代码
except ZeroDivisionError: #(捕获特定的异常类型ZeroDivisionError,ZeroDivisionError是Python中的内置异常类之一,用于表示在除数为零的情况下进行了除法操作所引发的异常。)

    print('因为这里打印出异常类型:除数不能为0。')# 处理值错误的代码

Python中异常捕获与处理的方法是什么

案例2:使用try-except语句搭配else语句(当 try 语句没有检测到任何异常的情况下,就执行 else 语句的内容)

ChartGen
ChartGen

AI快速生成专业数据图表

下载

当 try 语句检测到任何异常的情况下,则不执行else 语句的内容

>>> try:
...     1 / 0
... except:
...     print("逮到了~")
... else:
...     print("没逮到~")
...

逮到了~

如果在 try 语句中检测到异常,那么就执行 except 语句的异常处理内容:

>>> try:
...     1 / 1
... except:
...     print("逮到了~")
... else:
...     print("没逮到~")
...
1.0

没逮到~

案例3:使用try-except语句搭配finally语句(无论异常发生与否,都必须要执行的语句finally语句)

举例:

try:
‘abc’+ 123

except TypeError: #TypeError为类型错误,通常是由于将不同类型的对象组合在一起而引起的,如将字符串和数字相加。
    print('因为这里打印出异常类型:类型错误。')# 处理类型错误的代码
finally:
    print('不论是否无法异常,都执行这句话') # 无论是否发生异常都会执行的代码

Python中异常捕获与处理的方法是什么

异常处理是Python中的重要概念之一,开发人员应该了解如何正确地捕获和处理异常,以确保程序的稳定性和可靠性。

进阶:捕获异常的方法

捕获异常的两种方法:不管是何种异常,都捕获异常信息。

1.使用Exception:所有的异常都是 Exception 的子类。所以 Exception能匹配所有类型的异常。

举例:

>>> try:
    100/0
except Exception  as e:
    print('未知异常:', e)
# 对于很多刚学Python或者是学着学着迷茫了的小伙伴,我给大家准备了一套Python的学习资料。
# 包括数百本电子书、Python基础视频教程、项目实战,疑难解答,直接在文末名片自取。
   
未知异常: division by zero
>>>

可以正常捕获到异常的原因,但不能输出详细的异常信息(发送异常的位置和异常的代码)。

2.使用traceback模块:使用traceback模块里面的format_exc函数,可以显示异常的信息 和 异常产生处的函数调用栈的信息。

举例:

>>>  import traceback
>>>  try:
    100/0
except  :
    print(traceback.format_exc())
 
 
Traceback (most recent call  last):
  File "", line 2, in 
ZeroDivisionError: division by  zero
>>>

上面的代码会打印出导致异常的详细的函数调用栈的信息

相关文章

python速学教程(入门到精通)
python速学教程(入门到精通)

python怎么学习?python怎么入门?python在哪学?python怎么学才快?不用担心,这里为大家提供了python速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
python开发工具
python开发工具

php中文网为大家提供各种python开发工具,好的开发工具,可帮助开发者攻克编程学习中的基础障碍,理解每一行源代码在程序执行时在计算机中的过程。php中文网还为大家带来python相关课程以及相关文章等内容,供大家免费下载使用。

754

2023.06.15

python打包成可执行文件
python打包成可执行文件

本专题为大家带来python打包成可执行文件相关的文章,大家可以免费的下载体验。

636

2023.07.20

python能做什么
python能做什么

python能做的有:可用于开发基于控制台的应用程序、多媒体部分开发、用于开发基于Web的应用程序、使用python处理数据、系统编程等等。本专题为大家提供python相关的各种文章、以及下载和课程。

758

2023.07.25

format在python中的用法
format在python中的用法

Python中的format是一种字符串格式化方法,用于将变量或值插入到字符串中的占位符位置。通过format方法,我们可以动态地构建字符串,使其包含不同值。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

618

2023.07.31

python教程
python教程

Python已成为一门网红语言,即使是在非编程开发者当中,也掀起了一股学习的热潮。本专题为大家带来python教程的相关文章,大家可以免费体验学习。

1262

2023.08.03

python环境变量的配置
python环境变量的配置

Python是一种流行的编程语言,被广泛用于软件开发、数据分析和科学计算等领域。在安装Python之后,我们需要配置环境变量,以便在任何位置都能够访问Python的可执行文件。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

547

2023.08.04

python eval
python eval

eval函数是Python中一个非常强大的函数,它可以将字符串作为Python代码进行执行,实现动态编程的效果。然而,由于其潜在的安全风险和性能问题,需要谨慎使用。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

577

2023.08.04

scratch和python区别
scratch和python区别

scratch和python的区别:1、scratch是一种专为初学者设计的图形化编程语言,python是一种文本编程语言;2、scratch使用的是基于积木的编程语法,python采用更加传统的文本编程语法等等。本专题为大家提供scratch和python相关的文章、下载、课程内容,供大家免费下载体验。

707

2023.08.11

Golang gRPC 服务开发与Protobuf实战
Golang gRPC 服务开发与Protobuf实战

本专题系统讲解 Golang 在 gRPC 服务开发中的完整实践,涵盖 Protobuf 定义与代码生成、gRPC 服务端与客户端实现、流式 RPC(Unary/Server/Client/Bidirectional)、错误处理、拦截器、中间件以及与 HTTP/REST 的对接方案。通过实际案例,帮助学习者掌握 使用 Go 构建高性能、强类型、可扩展的 RPC 服务体系,适用于微服务与内部系统通信场景。

8

2026.01.15

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
最新Python教程 从入门到精通
最新Python教程 从入门到精通

共4课时 | 0.7万人学习

Django 教程
Django 教程

共28课时 | 3.1万人学习

SciPy 教程
SciPy 教程

共10课时 | 1.1万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号