精华内容
下载资源
问答
  • 实际上,python中一个完整的异常处理语句是try except else finally。在程序中,如果一个段代码必须要执行,即无论异常是否产生都要执行,那么此时就需要使用finallytry except else finally可以让我们的思维更加...

    实际上,python中一个完整的异常处理语句是try except else finally。在程序中,如果一个段代码必须要执行,即无论异常是否产生都要执行,那么此时就需要使用finally。try except else finally可以让我们的思维更加周密,条例更清晰。

    写了finally后,finally的代码部分不管try中的程序是否抛出异常总要去执行。一些场景比如打开文件后不管如何操作最终都要关闭文件,链接数据库后不管如何操作最终都要关闭连接。

    与else不同的是finally可以和try一个人搭配使用。

    # -*- coding: utf-8 -*-

    try:

    print('吃早饭')

    print('吃午饭')

    print('吃完饭')

    print('和{0}约会'.format(name))

    except NameError as e:

    print('出错!打印未定义变量',e)

    except IndexError as e:

    print('出错!列表索引异常',e)

    except:

    print('未知异常')

    else:

    print('今天一切顺利')

    finally:

    print('该睡觉了')

    吃早饭

    吃午饭

    吃完饭

    出错!打印未定义变量 name 'name' is not defined

    该睡觉了

    # -*- coding: utf-8 -*-

    try:

    print('和{0}约会'.format(name))

    finally:

    print('该睡觉了')

    该睡觉了

    Traceback (most recent call last):

    File "D:/pyscript/py3script/python66/python66.py", line 4, in

    print('和{0}约会'.format(name))

    NameError: name 'name' is not defined

    展开全文
  • 这些异常可以使用try语句处理:例如:try块将生成一个异常,因为未定义x:try:print(x)except:print("An exception occurred")由于try块引发错误,因此将执行except块。没有try块,程序将崩溃并引发错误:例如:该...

    1、异常处理

    当发生错误或异常时,Python通常会停止并生成错误消息。

    这些异常可以使用try语句处理:

    例如:

    try块将生成一个异常,因为未定义x:try:

    print(x)

    except:

    print("An exception occurred")

    由于try块引发错误,因此将执行except块。

    没有try块,程序将崩溃并引发错误:

    例如:

    该语句将引发错误,因为未定义x:print(x)

    2、多个异常处理

    可以定义任意数量的异常块,例如 如果要为特殊类型的错误执行特殊代码块:

    例如:

    如果try块出现NameError,则打印一条消息,如果出现其他错误,则打印另一条消息:try:

    print(x)

    except NameError:

    print("Variable x is not defined")

    except:

    print("Something else went wrong")

    3、else

    可以使用else关键字定义在未引发错误的情况下要执行的代码块:

    例如:

    在此示例中,try块不会产生任何错误:try:

    print("Hello")

    except:

    print("Something went wrong")

    else:

    print("Nothing went wrong")

    4、finally

    finally块(如果指定)将被执行,而不管try块是否引发错误。

    例如:try:

    print(x)

    except:

    print("Something went wrong")

    finally:

    print("The 'try except' is finished")

    可以用来关闭对象和清理资源:

    例如:

    尝试打开并写入不可写的文件:try:

    f = open("demofile.txt")

    f.write("Lorum Ipsum")

    except:

    print("Something went wrong when writing to the file")

    finally:

    f.close()

    程序可以继续运行,而无需打开文件对象。

    5、抛出引发异常(raise)

    作为Python开发人员,您可以选择在条件发生时引发异常。

    要抛出(或引发)异常,请使用raise关键字。

    例如:

    当x小于0时,抛出错误并停止程序:x = -1

    if x < 0:

    raise Exception("Sorry, no numbers below zero")

    raise关键字用于引发异常。

    可以定义引发哪种错误,以及向用户显示文本。

    例如:

    如果x不是整数,则引发TypeError:x = "hello"

    if not type(x) is int:

    raise TypeError("Only integers are allowed")

    展开全文
  • python try except else finally 实例classAError(Exception):"""AError---exception"""print('AError')classBError(Exception):"""BError---exception"""print('BError')try:#raise AError#raise BErroraaaaa()...

    python  try except else finally 实例

    classAError(Exception):"""AError---exception"""

    print('AError')classBError(Exception):"""BError---exception"""

    print('BError')try:#raise AError

    #raise BError

    aaaaa()exceptAError:print("Get AError")exceptBError:print("Get BError")except:print("Get Exception")else:print("do else")finally:print("finally")

    1.在上面所示的完整语句中try/except/else/finally所出现的顺序必须是try-->except X-->except-->else-->finally,即所有的except必须在else和finally之前,else(如果有的话)必须在finally之前,而except X必须在except之前。否则会出现语法错误。

    2.在上面的完整语句中,else语句的存在必须以except X或者except语句为前提,如果在没有except语句的try block中使用else语句会引发语法错误。也就是说else不能与try/finally配合使用。

    3.try成功进else,不成功进对应的except;

    4.不论是否成功except X,except的判定语句都会执行,只是不进入;对应到以上程序就是不论哪种情况 AError BError都会打印,但是Get AError Get BError 只有抛对应的异常时才会打印。

    5.finally所有情况都会执行,可以不写,写了就必须在所有except else等之后;

    展开全文
  • 在原本的try except结构的基础上,Python 异常处理机制还提供了一个 else 块,也就是原有 try except 语句的基础上再添加一个 else 块,即try except else结构。使用 else 包裹的代码,只有当 try 块没有捕获到任何...

    de647c02a396977619bd098b86c54b45.png

    在原本的try except结构的基础上,Python 异常处理机制还提供了一个 else 块,也就是原有 try except 语句的基础上再添加一个 else 块,即try except else结构。

    使用 else 包裹的代码,只有当 try 块没有捕获到任何异常时,才会得到执行;反之,如果 try 块捕获到异常,即便调用对应的 except 处理完异常,else 块中的代码也不会得到执行。

    举个例子:

    try:

    result = 20 / int(input("请输入除数:"))

    print(result)

    except ValueError:

    print("必须输入整数")

    except ArithmeticError:

    print("算术错误,除数不能为 0")

    else:

    print("没有出现异常")

    print("继续执行")

    可以看到,在原有 try except 的基础上,我们为其添加了 else 块。现在执行该程序:

    请输入除数:4

    5.0

    没有出现异常

    继续执行

    如上所示,当我们输入正确的数据时,try 块中的程序正常执行,Python 解释器执行完 try 块中的程序之后,会继续执行 else 块中的程序,继而执行后续的程序。

    读者可能会问,既然 Python 解释器按照顺序执行代码,那么 else 块有什么存在的必要呢?直接将 else 块中的代码编写在 try except 块的后面,不是一样吗?

    当然不一样,现在再次执行上面的代码:

    请输入除数:a

    必须输入整数

    继续执行

    可以看到,当我们试图进行非法输入时,程序会发生异常并被 try 捕获,Python 解释器会调用相应的 except 块处理该异常。但是异常处理完毕之后,Python 解释器并没有接着执行 else 块中的代码,而是跳过 else,去执行后续的代码。

    也就是说,else 的功能,只有当 try 块捕获到异常时才能显现出来。在这种情况下,else 块中的代码不会得到执行的机会。而如果我们直接把 else 块去掉,将其中的代码编写到 try except 的后面:

    try:

    result = 20 / int(input("请输入除数:"))

    print(result)

    except ValueError:

    print("必须输入整数")

    except ArithmeticError:

    print("算术错误,除数不能为 0")

    print("没有出现异常")

    print("继续执行")

    程序执行结果为:

    请输入除数:a

    必须输入整数

    没有出现异常

    继续执行

    可以看到,如果不使用 else 块,try 块捕获到异常并通过 except 成功处理,后续所有程序都会依次被执行。

    python  try except else finally 实例

    class AError(Exception):

    """AError---exception"""

    print("AError")

    class BError(Exception):

    """BError---exception"""

    print("BError")

    try:

    # raise AError

    # raise BError

    aaaaa()

    except AError:

    print("Get AError")

    except BError:

    print("Get BError")

    except:

    print("Get Exception")

    else:

    print("do else")

    finally:

    print("finally")

    1.在上面所示的完整语句中try/except/else/finally所出现的顺序必须是try-->except X-->except-->else-->finally,即所有的except必须在else和finally之前,else(如果有的话)必须在finally之前,而except X必须在except之前。否则会出现语法错误。

    2.在上面的完整语句中,else语句的存在必须以except X或者except语句为前提,如果在没有except语句的try block中使用else语句会引发语法错误。也就是说else不能与try/finally配合使用。

    3.try成功进else,不成功进对应的except;

    4.不论是否成功except X,except的判定语句都会执行,只是不进入;对应到以上程序就是不论哪种情况 AError BError都会打印,但是Get AError Get BError 只有抛对应的异常时才会打印。

    5.finally所有情况都会执行,可以不写,写了就必须在所有except else等之后;

    到此这篇关于Python try except else使用详解的文章就介绍到这了,更多相关Python try except else内容请搜索云海天教程以前的文章或继续浏览下面的相关文章希望大家以后多多支持云海天教程!

    展开全文
  • 与其他语言相同,在python中,try/except语句主要是用于处理程序正常执行过程中出现的一些异常情况,如语法错误(python作为脚本语言没有编译的环节,在执行过程中对语法进行检测,出错后发出异常消息)、数据除零...
  • 在 Python 中使用 tryexceptelsefinally… 语句检查可能发生异常的代码、捕获异常并做进一步处理,其语法如下: try: #尝试执行的代码 [except 错误类型1 : #针对错误类型1,对应的代码处理] [except 错误...
  • try except else finally

    2019-07-15 17:53:00
    try..except..else没有捕获到异常,执行else语句 try..except..finally不管是否捕获到异常,都执行finally语句 转载于:https://www.cnblogs.com/sea-stream/p/11190420.html...
  • 注意,和 else 语句不同,finally 只要求和 try 搭配使用,而至于该结构中是否包含 except 以及 else,对于 finally 不是必须的(else 必须和 try except 搭配使用)。在整个异常处理机制中,finally 语句的功能是:...
  • debug在python中可以使用try except else finally raise等关键字来处理异常,使用方法如下:try:后面跟着需要执行的语句except 捕获异常 并处理异常,通常异常有不同类型,可分别处理else:当try语句块正常执行时,无...
  • Python 异常处理详解。 获取异常信息的方法,try except 详解,try except else 详解,try except finally 详解。
  • python妙招-异常处理之try-except,今天讲一下try和其他语句用法1、try-except-elsetry 范围中没有检测到异常时候,执行 else 子句.。即在else范围中的任何代码运行前,try范围中的所有代码必须完全成功(也就是,...
  • 实验1:a = 1# a = 0try:print(1/a)except:print("我在执行except语句...")else:print("我在执行else语句...")finally:print("我在执行finally语句...")控制台输出Windows PowerShell版权所有 (C) Microsoft ...
  • try-except-else-finally

    2019-06-26 15:56:21
    try-except-else-finally tryexcept 异常 as变量: else: 没有异常执行的代码 finally: 最终一定要执行的代码 。。。。。。。。。。。。。。。。。。。。。。 案例:将一些字符串数据写入文件中 try: file=...
  • python中try/except/else/finally语句的完整格式如下所示:try:Normal execution blockexcept A:Exception A handleexcept B:Exception B handleexcept:Other exception handleelse:if no exception,get herefinally...
  • try except else finally raise with 这6个关键字都是我们在处理程序异常中必不可少的“工具” 一定要掌握,对我们编程中的debug也会有帮助 try 可以理解为我们如果碰到了。。。。一下情况 可以有很多情况,可以有很...
  • python try语句相关(try/except/else/finally)

    万次阅读 多人点赞 2018-05-09 22:11:19
    1、try - except 作用: 捕获程序在执行时遇到的异常情况,即一些报错。什么啥玩意儿没定义啊,符号又错了啊之类的你懂得。 意义: 因为程序在发现某个错误时,往往会中断不再向下执行,如下例子说明问题: 很...
  • python异常处理--try except else raise finally
  • python try except else finally 实例 class AError(Exception): """AError---exception""" print('AError') class BError(Exception): """BError---exception""" print('BError') try:...
  • 1、tryexcept ...2、tryexceptelse 语句 当没有异常发生时,else中的语句将会被执行;发生异常时,else的语句没有被运行 3、tryexcept 无论异常是否发生,在程序结束前,finally中的语句都会被执行 ...
  • `finally`会把前面的`return`都覆盖了。 只有try正常执行,才会执行elsetry有异常或return,都不会执行else。 建议把return放在函数最外面,或finally里,不然容易让finally里的return覆盖。
  • Python try else异常处理教程在在我们使用 try except else 结构时,同样可以使用 finally 分支,表示一定要执行的代码逻辑。Python try except else语句详解语法try:# 需要检测异常的代码except Exception:# 异常...
  • try: “可能存在异常的代码” except Exception as e: 代码异常后走这儿 print(‘报错’, e) else: 代码正常走这儿 finally: 无论代码是否异常,都会执行 白嫖不好,创作不易,各位的点赞就是创作的最大动力。...
  • Python中try,except,else,finally用法

    千次阅读 2016-09-29 19:51:07
    debug try-except-else-finally assert
  • 异常处理 目的:为防止代码在运行中,因...try 只能有一个,except 可以有多个,elsefinally 可以没有 except 的形式:     except:     except ValueError:     except ValueError as e:     e
  • 1.try/finally结构 既要将异常向上传播,又要在异常发生时执行清理工作。 常见用途之一:确保程序能够可靠的关闭文件句柄 handle = open('filepath') # 可能发生...3.try/except/else结构 清晰的描绘出哪些异常
  • try-except-else-finally语句

    千次阅读 2018-07-01 14:09:26
    try-except-else代码块的工作原理大致如下:Python尝试执行try代码块中的代码,只有可能引发异常的代码才放到try语句中,有时候,有时候,有一些try代码块成功执行时才需要运行的代码,这些代码应该放到else语句中。...
  • 注意,和 else 语句不同,finally 只要求和 try 搭配使用,而至于该结构中是否包含 except 以及 else,对于 finally 不是必须的(else 必须和 try except 搭配使用)。在整个异常处理机制中,finally 语句的功能是:...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,934
精华内容 773
关键字:

elseexceptfinallytry