精华内容
下载资源
问答
  • 在有些情况下,利用tryexcept来捕捉异常可以起到代替if…else的作用。 比如在判断一个链表是否存在环的leetcode题目中,初始代码是这样的 # Definition for singly-linked list. # class ListNode(object): # def...
  • 2.2 try-except-else 语句 2.3 try-except-else-finally 语句 2.4 小结 三、异常抛出 (Exception raising) 四、异常自定义 (Exception customizing) 五、预定义的清理行为 (with 语句) 六、断言 (Asserting) 七、...
  • python笔记——try except方法

    万次阅读 多人点赞 2019-06-02 20:49:53
    2、try except方法 一、常见错误总结 AttributeError 试图访问一个对象没有的树形,比如foo.x,但是foo没有属性x IOError 输入/输出异常;基本上是无法打开文件 ImportError 无法引入模块或包;基本上是路径问题或...

    本文结构:
    1、常见错误总结
    2、try except方法

    一、常见错误总结


    • AttributeError 试图访问一个对象没有的树形,比如foo.x,但是foo没有属性x
    • IOError 输入/输出异常;基本上是无法打开文件
    • ImportError 无法引入模块或包;基本上是路径问题或名称错误
    • IndentationError 语法错误(的子类) ;代码没有正确对齐
    • IndexError 下标索引超出序列边界,比如当x只有三个元素,却试图访问x[5]
    • KeyError 试图访问字典里不存在的键
    • KeyboardInterrupt Ctrl+C被按下
    • NameError 使用一个还未被赋予对象的变量
    • SyntaxError Python代码非法,代码不能编译(个人认为这是语法错误,写错了)
    • TypeError 传入对象类型与要求的不符合
    • UnboundLocalError 试图访问一个还未被设置的局部变量,基本上是由于另有一个同名的全局变量,
      导致你以为正在访问它
    • ValueError 传入一个调用者不期望的值,即使值的类型是正确的

    二、try except方法


    有时候我们写程序的时候,会出现一些错误或异常,导致程序终止,这个时候我们需要捕获错误的类型,让代码更灵活,下面介绍下常用的try except来进行捕获异常的方法。

    1. 处理单个异常:

    • 语法:
    >>> try:
    >>>     code
    >>> except Error1 as e:  #处理Error1异常
    >>>     print(e)
    
    • demo
    >>> try>>>     print(5/0)           #该行为测试的语句
    >>> except  ZeroDivisionError as e:              ## 如果测试的语句出现except后的异常(例中的ZeroDivisionError),则执行下一行代码,否则跳过此模块
    >>>     print(e)               ## 打印错误名称
    division by zero        ##执行结果
    
    1. 分开处理多个异常:

    • 语法
    >>> try:
    >>>     code
    >>> except Error1 as e:  #处理Error1异常
    >>>     print(e)
    >>> except Error2 as e:   #处理Error2异常    
    >>>     print(e)
    
    • demo
    >>> a = [0,1]
    >>> try:
    >>>     print(a[3])  
    >>>     print(5/0)   ##语句在上一行就遇到错误传到except里面去了,未检测到此语句 
    >>> except ZeroDivisionError as e:  #处理Error1异常
    >>>     print(e)
    >>> except IndexError as e:   #处理Error2异常    
    >>>     print(e)
    list index out of range
    
    1. 统一处理多个异常:

    • 语法
    >>> try:
    >>>     code
    >>> except (Error1,Error) :    ###无论遇到什么异常,都只会执行下一行要打印的一种东西
    >>>     print(e)
    
    1. 没有异常,则走else部分的逻辑代码

    • 语法:
    >>> try:
    >>>     code
    >>> except (Error1,Error2,...) as e:
    >>>     print(e)
    >>> else:
    >>>     print("没有错误,执行")
    
    • demo
    >>>  try>>>     print(5/1)           
    >>> except  ZeroDivisionError as e:             
    >>>     print(e)              
    >>> else:
    >>>     print("没有错误")
    没有错误
    
    1. 不管有没有错误,都会执行finnally中的代码
      例如在对文件进行操作时候,如果文件读写过程中出现错误,无法关闭,可以将f.close()放在finally中,这样无论是否有错误,文件都会关闭

    >>> try:
    >>>     code
    >>> except (Error1,Error2,...) as e:
    >>>     print(e)
    >>> else:
    >>>     print("没有错误,执行")
    >>> finnally:
    >>>     print("不管有没有错,都执行finnally")
    
    展开全文
  • python中try except else的使用方法

    千次阅读 2019-11-27 09:56:00
    except <name>: <语句> #如果在try部份引发了名为'name'的异常,则执行这段代码 else: <语句> #如果没有异常发生,则执行这段代码 ##错误判断的代码 ##其中,想让文件写东西,在open一个...

    try:
        <语句>
    except <name>:
        <语句>          #如果在try部份引发了名为'name'的异常,则执行这段代码
    else:
        <语句>          #如果没有异常发生,则执行这段代码

    ##错误判断的代码
    ##其中,想让文件写东西,在open一个文件的时候需要给r+
    try:
        file = open('/home/zbx/桌面/abcd','r+')
    except Exception as e:
        print("there is no file names as abcd")
        input_text = input("Do you want to new a file ?")
        if input_text == 'y':
            file = open('/home/zbx/桌面/abcd','w')
        else:
            pass
    else:
        file.write('ssss')
    file.close()

     

    展开全文
  • 今天小编就为大家分享一篇在python中利用tryexcept来代替if…else的用法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧 在有些情况下,利用tryexcept来捕捉异常可以起到代替if…else的作用...
  • 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:实际上可以自定义异常,这个需要用到类的知识,以后再说。

    展开全文
  • 2.tryexceptelse–finally 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---------')
    
    

    展开全文
  • tryexceptelse可以嵌套

    2019-09-19 17:30:31
  • 关于try...excepttry ....except...else

    千次阅读 2018-03-17 14:17:00
    这里我们可以看到else里边的语句是没有被运行的,因为try语句发生了错误,执行了except模块; 随后我们将计算改成可行计算,可以看到else语句后面的逻辑便执行出来了; 也就是说,我们可以使用这个模块...
  • 在python中经常使用try .. except捕获异常,下面介绍一下其常用的语句执行顺序:  try:  normal condition ... else:  if normal condition  finally:  Do it anyway  正常执行的程序在try下...
  • `finally`会把前面的`return`都覆盖了。 只有try正常执行,才会执行elsetry有异常或return,都不会执行else。 建议把return放在函数最外面,或finally里,不然容易让finally里的return覆盖。
  • try...except...else

    千次阅读 2018-05-31 11:27:57
    try except else是python用来捕捉和处理异常的语法在很多高级语言中都有类似的语法try..catch在代码中使用这种语法,可以帮助我们很好地调试代码下面就是简单说下执行的流程try: 正常的操作 ........................
  • python中利用try..except来代替if..else

    千次阅读 2018-12-28 12:32:45
    在有些情况下,利用tryexcept来捕捉异常可以起到代替if…else的作用。 比如在判断一个链表是否存在环的leetcode题目中,初始代码是这样的 # Definition for singly-linked list. # class ListNode(object): # def ...
  • try...except...else 结构
  • 所以为了这些错误,我们只能使用 try except,而不能使用if else   试想下,你愿意你的程序故障被老板半夜叫起来改代码么?当然是希望这个程序把能做的事儿先做了,别给我断,有问题等我睡舒服了第二天早上再...
  • Python中try...except...else的用法

    千次阅读 2018-02-24 09:11:59
    本篇总结了Python中try...except...else的用法。try: &lt;语句&gt;except &lt;name&gt;: &lt;语句&gt; #如果在try部份引发了名为'name'的异常,则执行这段代码else: &lt;语句&...
  • # 尝试执行语句try:看是否有错 try: print("执行了try") # float("dasd") # 如果出错就执行exceptexcept: print("执行了except") # 如果不出错就执行elseelse: print("执行了else") # 无论如何都会执行...
  • tryexcept语句处理异常 tryexcept 用于处理语句异常 在python中用来处理python所输出来的异常 它的一般语法为: Try: <语句> Except [<异常的名称> [,异常类的实例变量名称]]: <异常处理语句>...
  • 需要的题量多的话建议购买付费专栏(包含上百道题目答案,并持续更新中),性价比更高。
  • 目录 一、绪论 (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 小结 ...
  • 与其他语言相同,在python中,try/except语句主要是用于处理程序正常执行过程中出现的一些异常情况,如语法错误(python作为脚本语言没有编译的环节,在执行过程中对语法进行检测,出错后发出异常消息)、数据除零...
  • try: 可能触发异常的语句 except 错误类型1 [as 变量2]: 异常处理语句1 except 错误类型2 [as 变量2]: 异常处理语句2 except (错误类型3,错误类型4,······) [as 变量3]: 异常处理语句3 except: ...
  • try-except-else-finally语句

    千次阅读 2018-07-01 14:09:26
    try-except-else代码块的工作原理大致如下:Python尝试执行try代码块中的代码,只有可能引发异常的代码才放到try语句中,有时候,有时候,有一些try代码块成功执行时才需要运行的代码,这些代码应该放到else语句中。...
  • 异常是我们学习和生活中的常客,在编程时遇到的异常我们俗称为“Bug”,Bug的预防和处理关乎到代码质量的高低,今天我总结了Python中try-except-else-finally各种异常的处理逻辑,希望对你有所帮助。 什么是异常,...
  • 在python中,异常捕捉常用的方法是tryexcept…方法,其中如果在tryexcept方法中使用了else以及finally后,异常捕捉的执行逻辑会存在差异 1.try/except使用,执行顺序 def func(): i = 0 try: i += 1 print('...
  • try/except语句 try/except语句主要用来处理程序运行时遇到的一些异常情况(exception),例如除0(ZeroDivisionError)、类型错误(TypeError)、索引异常(IndexError)、键错误(KeyError)、导入模块错误...
  • python中return语句在try except else finally中的执行顺序 python版本: 3.7 首先先看下try except else finally的例子 def exe_try(): try: print("start") ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 182,825
精华内容 73,130
关键字:

elseexcepttry