精华内容
下载资源
问答
  • 2.3 try-except-else-finally 语句 2.4 小结 三、异常抛出 (Exception raising) 四、异常自定义 (Exception customizing) 五、预定义的清理行为 (with 语句) 六、断言 (Asserting) 七、小结 (Summary) 一、绪论 ...
  • 2.tryexceptelsefinally finally的作用? finally下面的代码,是不管有没有捕获得到异常,都会运行的代码。 # @time:2019/10/27 7:34 # @Author:coco # @File:test_try.py # @software:PyCharm ...

    四、异常处理
    一、什么是异常?
    什么是异常:当程序运行中检测到一个错误时,无法继续执行,出现了一些错误的提示,这就是异常
    1.电脑中常见的程序异常
    在这里插入图片描述在这里插入图片描述
    2.我们写的代码发生异常
    (1)变量没定义
    在这里插入图片描述
    (2)语法错误
    在这里插入图片描述
    (3)键不存在
    在这里插入图片描述
    (4)没找到模块
    在这里插入图片描述
    (5)类型错误
    在这里插入图片描述
    3.发生异常会导致什么样的后果
    什么是异常?当程序运行中检测到一个错误时,无法继续执行,出现了一些错误的提示,这就是异常。
    二、异常分析
    1.异常类型介绍
    在这里插入图片描述
    详细的异常类型地址:添加链接描述
    2.异常分析
    (1)问题遇到异常时如何追根溯源,找到错误?
    (2)异常案例
    在这里插入图片描述
    3.发生异常程序还要继续运行怎么办?
    三、异常捕获
    1.异常不活try–except:
    (1)try:
    下面是有可能出现异常的代码
    (2)except NameError:
    下面是捕获到异常之后的处理方案。
    **注意点:**except后面不写异常类型,默认捕获所有的异常类型
    (1)如果我们想要把捕获到的异常信息打印出来,这个时候我们应该怎么做?
    except…as e:
    在except 后面加as可以提取异常信息存储到变量中。
    在这里插入图片描述
    2.捕获多个指定的异常类型
    方式一:
    (1)try:
    有可能出现的异常代码。
    (2 except(NameError,ValueError)
    捕获到以上两种异常的处理方案。
    方式二:
    (1)try:
    有可能出现的异常代码。
    (2)except ValueError
    捕获到TabError异常的处理方案。
    (3)except NameError:
    捕获到NameError异常的处理方案。
    方式三:
    那么如果不确定捕获的类型,我们可以用Exception.
    在这里插入图片描述
    3.异常处理中的else和finally
    问题回顾:学过那些语句可以用else?分别表示什么意思?
    判断语句
    循环语句
    (1)try–except–else
    异常捕获语句里面的else用在什么地方?
    在这里插入图片描述
    这个else,是在没有捕获到异常的情况下,才会运行,非常简单。
    2.try–except–else–finally
    finally的作用?
    finally下面的代码,是不管有没有捕获得到异常,都会运行的代码。
    在这里插入图片描述

    # @time:2019/10/27 7:34
    # @Author:coco
    # @File:test_try.py
    # @software:PyCharm
    
    """
    异常捕获
    try:
    except:
    else:
    finally:
    
    """
    
    a=100
    
    try:
        print(a+'abc')
    except:
        print('捕获到了异常')
    
    try:
        with open('ttt.txt','r') as f:
            f.read()
    except:
        # 捕获到了异常
        print('打开的文件不存在')
        with open('ttt.txt','w') as f:
            pass
    

    运行结果:
    在这里插入图片描述
    在这里插入图片描述

    # @time:2019/10/27 7:56
    # @Author:coco
    # @File:02指定捕获异常的处理.py
    # @software:PyCharm
    
    
    """
    异常捕获
    try:
    except:
    else:
    finally:
    
    """
    
    a = 100
    
    try:
        print(a + 'abc')
    # except后面可以写异常类型(指定只捕获这类型的错误)
    except TypeError as e:
        print('捕获到了异常')
        print(e)
    except NameError:
        print('捕获变量没有被定义的错误')
    
    print('python666')
    
    # 方式二:一个except指定捕获多异常类型
    try:
        print(a + 'abc')
    # except后面可以写异常类型(指定只捕获这类型的错误)
    except (TypeError, NameError) as e:
        print('捕获到了类型异常')
        print(e)
    
    # 捕获所有的异常类型(语法错误除外)
    
    try:
        # aa = 10000
        print(a + 'abc')
    # except后面可以写异常类型(指定只捕获这类型的错误)
    except Exception as e:
        print('捕获到了类型异常')
        print(e)
    else:
        # try里面没有捕获异常
        print('没有捕获到异常')
    finally:
        # rty里面的代码不管是否发生异常,它都会执行
        print('----------finally---------')
    
    

    展开全文
  • python try语句相关(try/except/else/finally)

    万次阅读 多人点赞 2018-05-09 22:11:19
    1、try - except 作用: 捕获程序在执行时遇到的异常情况,即一些报错。什么啥玩意儿没定义啊,符号又错了啊之类的你懂得。 意义: 因为程序在发现某个错误时,往往会中断不再向下执行,如下例子说明问题: 很...

    1、try - except

    作用: 捕获程序在执行时遇到的异常情况,即一些报错。什么啥玩意儿没定义啊,符号又错了啊之类的你懂得。

    意义: 因为程序在发现某个错误时,往往会中断不再向下执行,如下例子说明问题:

    很明显,我们并没有定义b,  就将它赋值给a, 现在我们运行如下:

    不出所料提示NameError, 发现错误就报错,不再执行下面的程序。

    现在我们用try/except写一下:

    打印:

    我们从这个例子可以试着去推测这段代码的执行过程:

    (1)先执行try代码块, 发现了错误。

    (2)执行except代码块。

    (3)程序向下执行。

    可能有疑问try block发现异常前后正常的的部分会被执行吗,可以测试一下:

    打印:

    结论:

     

    (1)先执行try block, 直到发现了错误,不再执行异常之后的代码。

    (2)执行except block.

    (3)向下继续。

     

    现在已经对try/excepy有了感性的了解,接下来拓展它的用法:

    简单来说,在try/except语句中,可以用多个except.

    例子:

    这里使用了两个except, 可以发现except 后面跟了SyntaxError, NameError, 这个我们经常见过的两个系统报错,当然这里可以改成任何系统错误(参见python标准异常)。执行:

    可见,当try代码块执行出现异常,在except中匹配到了NameError的异常,则执行了对应except的语句。

    新的疑问,若所有except都没有匹配呢,测试如下:

    我们将NameErro改成了SystemExit,打印:

    发现又回到了开始,说明这样的try/except等于是废的。。。

    所以避免没有匹配到异常,又中断程序,将代码修改如下:

    即又加了一条except, 这条except后面没有加系统错误,打印:

    OK,get it.

     

    2、try-except-else

    举个例子:

    打印:

    可见,有异常时,else block时不执行的。

    那,无异常时:

       

    打印:

    可见,无异常时else block执行。

    至此可以写出try/except/else的格式

    --------------------------------------------------------------------------------

    try:

        try block

    except ERROR1:

        except ERROR1 block

    except ERRPR2:

        except ERROR2 block

                ......

    except:

        except block

    else:

        else block

    -----------------------------------------------------------------------------

    当然, 这些测试只是看到语句的功能,具体的实现内部原理再说吧, 一开始看那些得把人搞晕。

     

    3、try-finally

    作用: 无论try语句是否有异常,最后都要执行的代码。

    例子:

    错是有的,先执行完finally block, 然后回到try block报错。

    当然 try, except, else, finally是可以全部组合在一起用的。

     

     

    PS:实际上可以自定义异常,这个需要用到类的知识,以后再说。

    展开全文
  • `finally`会把前面的`return`都覆盖了。 只有try正常执行,才会执行elsetry有异常或return,都不会执行else。 建议把return放在函数最外面,或finally里,不然容易让finally里的return覆盖。

    如果try except else finally都有返回值,会返回谁的值呢?参见下面各种情况。

    如果try有返回值呢?

    def f():
        try:
            print(1)
            return 1
        except:
            print(2)
            return 2
        else:
            print(3)
            return 3
        finally:
            print(4)
            return 4
    

    输出:

    1
    4
    4
    
    

    答案是finally的返回值。
    finally把前面的return都覆盖了。

    如果有异常发生返回呢?

    def f():
        try:
            print(1/0)
            return 1
        except:
            print(2)
            return 2
        else:
            print(3)
            return 3
        finally:
            print(4)
            return 4
    
    print(f())
    

    结果:

    2
    4
    4
    

    如果有else返回呢?

    def f():
        try:
            print(1)
            # return 1
        except:
            print(2)
            return 2
        else:
            print(3)
            return 3
        finally:
            print(4)
            return 4
    
    print(f())
    

    结果:

    1
    3
    4
    4
    

    总结

    finally会把前面的return都覆盖了。
    只有try正常执行,才会执行else,try有异常或return,都不会执行else。
    建议把return放在函数最外面,或finally里,不然容易让finally里的return覆盖。

    “如果try中没有异常,那么except部分将跳过,执行else中的语句。
    finally是无论是否有异常,最后都要做的一些事情。”

    展开全文
  • 在python中经常使用try .. except捕获异常,下面介绍一下其常用的语句执行顺序:  try:  normal condition ... else:  if normal condition  finally:  Do it anyway  正常执行的程序在try下...

    在python中经常使用try .. except捕获异常,下面介绍一下其常用的语句执行顺序:

           try:

        normal condition

      except:

        abnormal condition 

      else:

        if normal condition

      finally:

        Do it anyway

        正常执行的程序在try下面执行,在执行中如果发生了异常,则中断当前执行然后执行except中的部分,如果没有异常即不执行except的情况下,则会执行else中的语句,finally语句是最后无论是否有异常都要执行的代码。

      注:也可以只使用try /except而不使用else / finally。

     

    展开全文
  • 目录 一、绪论 (introduction) 二、异常捕获 (exception catching) 2.1 try-except 语句 2.1.1 基本用法 2.1.2 指定异常类型 2.1.3 小结 2.2 try-except-else 语句 2.3 try-except-else-finally 语句 2.4 小结 ...
  • try: “可能存在异常的代码” except Exception as e: 代码异常后走这儿 print(‘报错’, e) else: 代码正常走这儿 finally: 无论代码是否异常,都会执行 白嫖不好,创作不易,各位的点赞就是创作的最大动力。...
  • 如下图: tryexcept & finally 的用法 无论是否遇到异常,最后都会执行 finally后的代码块(语句),如下图: tryexcept & finally,打开文件(以 txt为例) 的用法 当打开一个不存在的文件时,会执行 ...
  • 异常是我们学习和生活中的常客,在编程时遇到的异常我们俗称为“Bug”,Bug的预防和处理关乎到代码质量的高低,今天我总结了Python中try-except-else-finally各种异常的处理逻辑,希望对你有所帮助。 什么是异常,...
  • 在Python项目中,有时候会出现异常,这时候作为一名程序员,学会处理异常非常重要,下面给大家介绍try,except,else,finally的用法。 首先介绍一下每个单词块的意思: try:把可能出现的异常代码放进try中,代表异常...
  • try-except-else-finally语句

    千次阅读 2018-07-01 14:09:26
    try-except-else代码块的工作原理大致如下:Python尝试执行try代码块中的代码,只有可能引发异常的代码才放到try语句中,有时候,有时候,有一些try代码块成功执行时才需要运行的代码,这些代码应该放到else语句中。...
  • try - except - finally语句 try - except - else语句 raise语句 学习内容: 一、try - except 语句 格式:try: 检测范围 except Exception[as reason]: 出现异常后的处理代码 try语句工作流程: 首先,...
  • 与其他语言相同,在python中,try/except语句主要是用于处理程序正常执行过程中出现的一些异常情况,如语法错误(python作为脚本语言没有编译的环节,在执行过程中对语法进行检测,出错后发出异常消息)、数据除零...
  • 1.try/finally结构 既要将异常向上传播,又要在异常发生时执行清理工作。 常见用途之一:确保程序能够可靠的关闭文件句柄 handle = open('filepath') # 可能发生...3.try/except/else结构 清晰的描绘出哪些异常
  • try/except介绍 与其他语言相同,在python中,try/except语句主要是用于处理程序正常执行...而try/finally语句则主要用于在无论是否发生异常情况,都需要执行一些清理工作的场合,如在通信过程中,无论通信是否发生...
  • 一、异常 在Python程序执行过程中发生的异常可以通过try语句来检测,可以把需要检测的语句放置在try块里 面,try块里面的语句发生的异常都会被try...try语句有两种形式:一种是tryexcept;一种是tryfinally。也可
  • 文章目录1....而try/finally语句则主要用于在无论是否发生异常情况,都需要执行一些清理工作的场合,如在通信过程中,无论通信是否发生错误,都需要在通信完成或者发生错误时关闭网络连接。尽管try/except
  • try: 可能触发异常的语句 except 错误类型1 [as 变量2]: 异常处理语句1 except 错误类型2 [as 变量2]: 异常处理语句2 except (错误类型3,错误类型4,······) [as 变量3]: 异常处理语句3 except: ...
  • 在python中,异常捕捉常用的方法是tryexcept…方法,其中如果在tryexcept方法中使用了else以及finally后,异常捕捉的执行逻辑会存在差异 1.try/except使用,执行顺序 def func(): i = 0 try: i += 1 print('...
  • python try except else finally 执行顺序详细分析 分类: Python2014-05-28 17:15 193人阅读 评论(0) 收藏 举报 学习python或者其他有异常控制的编程语言, 大家很有可能说try except finally...
  • Python学习笔记——try-except-else-finally try-except 作用:处理异常情况(对异常情况作其他处理) 用法:try:后面写正常的代码,except + 异常情况:后面写对异常情况的处理 示例: try: num = int...
  • try/except语句 try/except语句主要用来处理程序运行时遇到的一些异常情况(exception),例如除0(ZeroDivisionError)、类型错误(TypeError)、索引异常(IndexError)、键错误(KeyError)、导入模块错误...
  • try-except-else-finally: 如果try中没有抛出异常,则执行else块, 如果try中抛出异常,则执行except块, 无论出错与否,finally块一定会执行。 """ try: a = int(input("请输入一个整数:")) b = int(input...
  • try except else finally

    2020-10-20 11:54:58
    python的try finally (还真不简单) def f(): try: print 1 return 1 finally: print 0 return 0 结果为 1 0 0 无论try里执行什么,即使是return,也会调用finally的 def f(): try: print 1 return 1 ...
  • 针对 try - except - else - finally 对异常得处理进行解析! 结论 ** 1. else语句只有在try中没有异常,没有return时才会作用!** ** 2. finaly语句必然会执行,如果finally含有return,必然执行finally的return...
  • 本文实例分析了Python中的异常处理try/except/finally/raise用法。分享给大家供大家参考,具体如下: 异常发生在程序执行的过程中,如果python无法正常处理程序就会发生异常,导致整个程序终止执行,python中使用try...
  • 三、异常捕获简单使用 虽然异常捕获操作有tryexceptelsefinally四个语句,但是并不是每次使用的时候都全部使用,其实和if、else、elif很类似,根据具体情况具体选择,也可以嵌套使用,当然方法是灵活的,搞...
  • Python中异常捕捉try..except...finally的使用

    万次阅读 多人点赞 2018-08-18 10:41:33
    只有try...except.,try...except...finally这三种用法 try: f1 = open("tes3t.txt","rU") for i in f1: i=i.strip() print(i) finally: #finally的代码是肯定执行的,不管是否有异常,但是finally语块是可选的。...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 48,060
精华内容 19,224
关键字:

elseexceptfinallytry