Python异常处理

  Python异常处理,Python开发工程师们在工作的过程中经常会遇到这样或者那样的问题,本篇文章给读者们分享一下Python异常处理,对Python开发技术感兴趣的小伙伴随小编来了解一下吧。

  定义:python解释器检测到错误,触发异常(也允许程序员自己触发异常)程序员编写特定的代码,专门用来捕 捉这个异常(这段代码与程序逻辑无关,与异常处理有关)如果捕捉成功则进入另外一个处理分支,执行你为其 定制的逻辑,使程序不会崩溃,这就是异常处理。

  需求:当程序遇到问题时不让程序结束,而越过错误继续向下执行。

  意义:python解析器去执行程序,检测到了一个错误时,触发异常,异常触发后且没被处理的情况下,程序就在当前异常处终止,后面的代码不会运行,所以你必须提供一种异常处理机制来增强你程序的健壮性与容错性。

try……except……else

格式:

try:

语句t

except 错误码 as e:

语句1

except 错误码 as e:

语句2

……

except 错误码 as e:

语句n

else:

语句e

注意:else语句可有可无

作用:用来检测try语句块中的错误,从而让except语句捕获错误信息并处理。

  逻辑:当程序执行到try-except-else语句时1、如果当try“语句t”执行出现错误,会匹配第一个错误码,如果匹配上就执行对应"语句"2、如果当try“语句t”执行出现错误,没有匹配的异常,错误将会被提交到上一层的try语句。或者到程序的最上层3、如果当try“语句t”执行没有出现错误,执行else下的“语句e”(你得有)4、如果当try“语句t”执行出现错误,匹配到错误码,执行对应"语句",然后将不在执行以后的except语句。

实例代码:

>>> s1 = 'a'

>>> int(s1)

Traceback (most recent call last):

File "<pyshell#1>", line 1, in <module>

int(s1)

ValueError: invalid literal for int() with base 10: 'a'

>>>

如何才能处理异常,进行下一步呢?

s1 = 'a'

try:

int(s1)

except ValueError as e:

print(e)

print('出错了,请检查代码!!')

================ RESTART: C:\Users\Administrator\Desktop\1.py ================

invalid literal for int() with base 10: 'a'

出错了,请检查代码!!

>>>

多分支

当运行结果可能会出现二个或多个异常时使用多分支。

try:

msg = input('请输入:')

num = int(msg)

nm = list(num)

except TypeError as e:

print(e)

except ValueError as e:

print(e)

================ RESTART: C:\Users\Administrator\Desktop\1.py ================

请输入:111

'int' object is not iterable

>>>

================ RESTART: C:\Users\Administrator\Desktop\1.py ================

请输入:a

invalid literal for int() with base 10: 'a'

>>>

万能异常

在python的异常中,有一个万能异常:Exception,他可以捕获任意异常

s1 = 'a'

try:

int(s1)

except Exception as e:

print(e)

print('出错了,请检查代码!!')

================ RESTART: C:\Users\Administrator\Desktop\1.py ================

invalid literal for int() with base 10: 'a'

出错了,请检查代码!!

>>>

和前面的代码一模一样。

try-finally语句

语句无论是否发生异常都将执行最后的代码。

s1 = input('输入:')

try:

int(s1)

except ValueError as e:

print(e)

else:

print('try内代码块没有异常则执行我')

finally:

print('无论异常与否,都会执行该模块,通常是进行清理工作')

================ RESTART: C:\Users\Administrator\Desktop\1.py ================

输入:10

try内代码块没有异常则执行我

无论异常与否,都会执行该模块,通常是进行清理工作

>>>

================ RESTART: C:\Users\Administrator\Desktop\1.py ================

输入:a

invalid literal for int() with base 10: 'a'

无论异常与否,都会执行该模块,通常是进行清理工作

>>>

(0)

相关推荐

  • Python try except异常处理详解(入门必读)

    Python中,用tryexcept语句块捕获并处理异常,其基本语法结构如下所示: try: 可能产生异常的代码块except [ (Error1, Error2, ... ) [as e] ]: 处 ...

  • 深入 Python 异常处理

    (给Python开发者加星标,提升Python技能) 来源:Python之王-小sen [导语]:本文结合例程总结Python异常处理的相关知识,帮你深入理解python异常处理. 在Python 中 ...

  • Python异常处理和异常类型

    python2.x捕获异常语法: try: ...some functions...except Exception, e: print(e) python3.x捕获异常语法: try: ...som ...

  • 一文看懂Python异常处理(exception, try和raise语句)

    一个Python程序在运行时,如果解释器遇到到一个错误,会停止程序的执行,并且提示一些错误信息,这就是异常(Exception).即便Python程序的语法是正确的,还是会有各种各样意想不到的异常或错 ...

  • Python 异常处理 | 菜鸟教程

    Python 异常处理 python提供了两个非常重要的功能来处理python程序在运行中出现的异常和错误.你可以使用该功能来调试python程序. 异常处理: 本站Python教程会具体介绍. 断言 ...

  • python try异常处理

    什么是异常 python异常捕获,在刚开始学的时候,经常会遇到两种报错信息:语法错误和执行的异常. 语法错误在执行的时候就会报错,同时控制端会告诉你错误所在的行: 但即便python程序语法是正确的, ...

  • 一文读懂Python中的异常处理

    异常处理语句 try...excpet...finally 实例代码 def div(a, b):    try:        print(a / b)    except ZeroDivision ...

  • Python 工匠: 异常处理的三个好习惯

    原创 piglei piglei 2019-03-11 前言 这是 "Python 工匠"系列的第 6 篇文章.(点击原文链接,可查看系列其他文章) 如果你用 Python 编程, ...

  • Python基础学习笔记(八)异常处理

    本节知识大纲: 本节知识大纲 一.概念 什么是异常? 在程序运行过程中发生错误和意外,这些错误和意外往往不是语法错误. 定义:语法错误不属于异常,因为语法错误没办法让软件正常运行:正确情况下的异常指的 ...

  • Python数据分析笔记#4 错误和异常处理

    原创Yuan的学习笔记2021-02-15 17:06:56 Yuan的学习笔记 作者 Yuan 错误和异常处理 我们写程序时常常会遇到各种错误,比如下面一个例子,当把一个字符串转化为浮点数类型时,程 ...