精华内容
下载资源
问答
  • try/except介绍
    万次阅读 多人点赞
    2019-03-14 20:43:00

    try/except介绍
    与其他语言相同,在python中,try/except语句主要是用于处理程序正常执行过程中出现的一些异常情况,如语法错(python作为脚本语言没有编译的环节,在执行过程中对语法进行检测,出错后发出异常消息)、数据除零错误、从未定义的变量上取值等;而try/finally语句则主要用于在无论是否发生异常情况,都需要执行一些清理工作的场合,如在通信过程中,无论通信是否发生错误,都需要在通信完成或者发生错误时关闭网络连接。尽管try/except和try/finally的作用不同,但是在编程实践中通常可以把它们组合在一起使用try/except/else/finally的形式来实现稳定性和灵活性更好的设计。

    默认情况下,在程序段的执行过程中,如果没有提供try/except的处理,脚本文件执行过程中所产生的异常消息会自动发送给程序调用端,如python shell,而python shell对异常消息的默认处理则是终止程序的执行并打印具体的出错信息。这也是在python shell中执行程序错误后所出现的出错打印信息的由来。

    try/except格式
    python中try/except/else/finally语句的完整格式如下所示:
    try:
    Normal execution block
    except A:
    Exception A handle
    except B:
    Exception B handle
    except:
    Other exception handle
    else:
    if no exception,get here
    finally:
    print(“finally”)

    说明:
    正常执行的程序在try下面的Normal execution block执行块中执行,在执行过程中如果发生了异常,则中断当前在Normal execution block中的执行,跳转到对应的异常处理块中开始执行;
    python从第一个except X处开始查找,如果找到了对应的exception类型则进入其提供的exception handle中进行处理,如果没有找到则直接进入except块处进行处理。except块是可选项,如果没有提供,该exception将会被提交给python进行默认处理,处理方式则是终止应用程序并打印提示信息;
    如果在Normal execution block执行块中执行过程中没有发生任何异常,则在执行完Normal execution block后会进入else执行块中(如果存在的话)执行。
    无论是否发生了异常,只要提供了finally语句,以上try/except/else/finally代码块执行的最后一步总是执行finally所对应的代码块。

    需要注意的是:
    1.在上面所示的完整语句中try/except/else/finally所出现的顺序必须是try–>except X–>except–>else–>finally,即所有的except必须在else和finally之前,else(如果有的话)必须在finally之前,而except X必须在except之前。否则会出现语法错误。
    2.对于上面所展示的try/except完整格式而言,else和finally都是可选的,而不是必须的,但是如果存在的话else必须在finally之前,finally(如果存在的话)必须在整个语句的最后位置。
    3.在上面的完整语句中,else语句的存在必须以except X或者except语句为前提,如果在没有except语句的try block中使用else语句会引发语法错误。也就是说else不能与try/finally配合使用。
    4.except的使用要非常小心,慎用。
    class AError(Exception):
    “”“AError—exception”""
    print(‘AError’)

    try:
    #raise AError
    asdas(‘123’)
    except AError:
    print(“Get AError”)
    except:
    print(“exception”)
    else:
    print(“else”)
    finally:
    print(“finally”)
    print(“hello wolrd”)
    在上面的代码中,Normal execution block中出现了语法错误,但是由于使用了except语句,该语法错误就被掩盖掉了。因此在使用try/except是最好还是要非常清楚的知道Normal execution block中有可能出现的异常类型以进行针对性的处理。

    更多相关内容
  • 主要介绍了Python中的异常处理try/except/finally/raise用法,结合实例形式分析了Python异常处理try/except/finally/raise相关功能与使用操作技巧,并附带了Python常见异常的表格说明,需要的朋友可以参考下
  • try/except介绍 与其他语言相同,在python中,try/except语句主要是用于处理程序正常执行过程中出现的一些异常情况,如语法错(python作为脚本语言没有编译的环节,在执行过程中对语法进行检测,出错后发出异常消息...

    try/except介绍

    与其他语言相同,在python中,try/except语句主要是用于处理程序正常执行过程中出现的一些异常情况,如语法错(python作为脚本语言没有编译的环节,在执行过程中对语法进行检测,出错后发出异常消息)、数据除零错误、从未定义的变量上取值等;而try/finally语句则主要用于在无论是否发生异常情况,都需要执行一些清理工作的场合,如在通信过程中,无论通信是否发生错误,都需要在通信完成或者发生错误时关闭网络连接。尽管try/except和try/finally的作用不同,但是在编程实践中通常可以把它们组合在一起使用try/except/else/finally的形式来实现稳定性和灵活性更好的设计。

    默认情况下,在程序段的执行过程中,如果没有提供try/except的处理,脚本文件执行过程中所产生的异常消息会自动发送给程序调用端,如python
    shell,而python shell对异常消息的默认处理则是终止程序的执行并打印具体的出错信息。这也是在python
    shell中执行程序错误后所出现的出错打印信息的由来。

    try/except格式

    python中try/except/else/finally语句的完整格式如下所示: try:
    Normal execution block except A:
    Exception A handle except B:
    Exception B handle except:
    Other exception handle else:
    if no exception,get here finally:
    print(“finally”)

    说明: 正常执行的程序在try下面的Normal execution
    block执行块中执行,在执行过程中如果发生了异常,则中断当前在Normal execution
    block中的执行,跳转到对应的异常处理块中开始执行; python从第一个except
    X处开始查找,如果找到了对应的exception类型则进入其提供的exception
    handle中进行处理,如果没有找到则直接进入except块处进行处理。except块是可选项,如果没有提供,该exception将会被提交给python进行默认处理,处理方式则是终止应用程序并打印提示信息;
    如果在Normal execution block执行块中执行过程中没有发生任何异常,则在执行完Normal execution
    block后会进入else执行块中(如果存在的话)执行。

    无论是否发生了异常,只要提供了finally语句,以上try/except/else/finally代码块执行的最后一步总是执行finally所对应的代码块。

    需要注意的是:
    1.在上面所示的完整语句中try/except/else/finally所出现的顺序必须是try–>except X–>except–>else–>finally,即所有的except必须在else和finally之前,else(如果有的话)必须在finally之前,而except X必须在except之前。否则会出现语法错误。
    2.对于上面所展示的try/except完整格式而言,else和finally都是可选的,而不是必须的,但是如果存在的话else必须在finally之前,finally(如果存在的话)必须在整个语句的最后位置。
    3.在上面的完整语句中,else语句的存在必须以except X或者except语句为前提,如果在没有except语句的try block中使用else语句会引发语法错误。也就是说else不能与try/finally配合使用。

    4.except的使用要非常小心,慎用。 class AError(Exception):
    “”“AError—exception”""
    print(‘AError’)

    try:
    #raise AError
    asdas(‘123’) except AError:
    print(“Get AError”) except:
    print(“exception”) else:
    print(“else”) finally:
    print(“finally”) print(“hello wolrd”) 在上面的代码中,Normal execution
    block中出现了语法错误,但是由于使用了except语句,该语法错误就被掩盖掉了。因此在使用try/except是最好还是要非常清楚的知道Normal
    execution block中有可能出现的异常类型以进行针对性的处理。

    如果还有问题未能得到解决,搜索887934385交流群,进入后下载资源工具安装包等。最后,感谢观看!

    展开全文
  • 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:实际上可以自定义异常,这个需要用到类的知识,以后再说。

    展开全文
  • Python 有两种错误很容易辨认:语法错误和异常。 异常 即便 Python 程序的语法是正确的,在运行它的时候... 首先,执行 try 子句(在关键字 try 和关键字 except 之间的语句)。 如果没有异常发生,忽略 exc...

    Python 有两种错误很容易辨认:语法错误和异常。

    异常

    即便 Python 程序的语法是正确的,在运行它的时候,也有可能发生错误。运行期检测到的错误被称为异常。

    大多数的异常都不会被程序处理,都以错误信息的形式展现在这里:

    例如:

     

    异常处理

    try/except

    异常捕捉可以使用 try/except 语句

     

    try 语句按照如下方式工作;

    • 首先,执行 try 子句(在关键字 try 和关键字 except 之间的语句)。

    • 如果没有异常发生,忽略 except 子句,try 子句执行后结束。

    • 如果在执行 try 子句的过程中发生了异常,那么 try 子句余下的部分将被忽略。如果异常的类型和 except 之后的名称相符,那么对应的 except 子句将被执行。

    • 如果一个异常没有与任何的 except 匹配,那么这个异常将会传递给上层的 try 中。

    一个 try 语句可能包含多个except子句,分别来处理不同的特定的异常。最多只有一个分支会被执行。

    处理程序将只针对对应的 try 子句中的异常进行处理,而不是其他的 try 的处理程序中的异常。

    一个except子句可以同时处理多个异常,这些异常将被放在一个括号里成为一个元组,例如:

    except (RuntimeError, TypeError, NameError):
        pass

    最后一个except子句可以忽略异常的名称,它将被当作通配符使用。你可以使用这种方法打印一个错误信息,然后再次把异常抛出。

    例如:

    import sys
    
    try:
        f = open('myfile.txt')
        s = f.readline()
        i = int(s.strip())
    except OSError as err:
        print("OS error: {0}".format(err))
    except ValueError:
        print("Could not convert data to an integer.")
    except:
        print("Unexpected error:", sys.exc_info()[0])
        raise

    如果没有myfile.txt文件,则except子句处理OSError异常,运行结果为:

     如果已经创建myfile.txt文件,则except子句处理ValueError子句,运行结果为:

    try/except...else

    try/except 语句还有一个可选的 else 子句,如果使用这个子句,那么必须放在所有的 except 子句之后。else 子句将在 try 子句没有发生任何异常的时候执行。else子句语句块中的内容当try语句中发生异常时,将不被执行。

     

     

     

    f=open('x.txt','w')  #创建x.txt文件并以写的模式打开
    str='hello world \n 你好 世界'
    f.write(str)  #写入内容
    f.close()
    
    #下面是读文件
    
    for x in range(1,3):
        try:
            f = open('x.txt', 'r')
        except IOError:
            print('cannot open', arg)
        else:
            for line in f:
                # print("读第"+str(x)+"遍")
                print(line)
            f.close()

     因为文件可以打开,所以执行else语句中的读文件操作,运行结果为:

    使用 else 子句比把所有的语句都放在 try 子句里面要好,这样可以避免一些意想不到,而 except 又无法捕获的异常。
    异常处理并不仅仅处理那些直接发生在 try 子句中的异常,而且还能处理子句中调用的函数(甚至间接调用的函数)里抛出的异常。

    例如:

    def chu():
        print(1/0)
    try:
        chu()
    except ZeroDivisionError as err:
            print('Handling run-time error:', err)

     try语句中调用chu()函数,有异常,运行结果为:

     

    展开全文
  • 定义: 错误:错误是语法或者逻辑上的,语法导致不能被解释器解释报错,例如运行python的时候经常碰到的语法...异常以及处理分为两个过程,首先是解释器引发异常随后执行异常时的处理代码,使用try/except语句 例如:
  • 2.1:try/except/else捕获指定的异常: 2.2:try/finally 2.3:raise:引发异常 2.4:with/as:上下文管理器 3:Python中常见异常 1:Python3中异常处理介绍 在Python中当发生错误时,Python中的异常会自动触发...
  • 与其他语言相同,在python中,try/except语句主要是用于处理程序正常执行过程中出现的一些异常情况,如语法错误(python作为脚本语言没有编译的环节,在执行过程中对语法进行检测,出错后发出异常消息)、数据除零...
  • 1.try/finally结构 既要将异常向上传播,又要在异常发生时执行清理工作。 常见用途之一:确保程序能够可靠的关闭文件句柄 handle = open('filepath') # 可能发生...3.try/except/else结构 清晰的描绘出哪些异常
  • 在Python中嵌套try / except

    千次阅读 2021-01-13 10:53:33
    至少你应该能够通过重新添加异常来将此结构减少到只有2个嵌套级别,以避免其余的块...message = Nonetry:try:x1 = sqrt(x)except Exception:message = "can't take sqrt"raisetry:x1 = log(x1-4)except Exception:mes...
  • 异常捕获与断言 异常是针对程序中可能接收未被考虑到的输入(用户输入),导致程序无法进行正确处理而崩溃的情况。 断言是针对程序中由于变量被设置了错误的值(程序员编写...Exception()返回一个Exception对象,try...
  • 有没有办法将try / except块中的异常从一个传播到另一个除外?我想捕获一个特定的错误,然后进行一般的错误处理.“raise”允许异常“冒泡”到外部try / except,但不在try / except块内引发错误.理想情况应该是这样的...
  • try/except介绍 与其他语言相同,在python中,try/except语句主要是用于处理程序正常执行过程中出现的一些异常情况,如语法错(python作为脚本语言没有编译的环节,在执行过程中对语法进行检测,出错后发出异常消息...
  • 数据库有一些问题,我希望脚本尝试重新连接到数据库,所以我添加了try/except。但是现在我收到错误消息“无法连接到数据库”。如果我去掉try/except语句,脚本就可以完美地工作了。如果有人能帮助我使try/except语句...
  • python中try/except/finally关键字的使用

    千次阅读 2020-02-11 17:14:16
    和JAVA语言一样,Python也用try关键字来处理异常。 为什么处理异常非常重要呢?主要原因:很多操作只要‘尝试’了才知道会不会成功。...我们先看"try...except...", 实验准备: 1. 一个txt文...
  • try/except语句 try/except语句主要用来处理程序运行时遇到的一些异常情况(exception),例如除0(ZeroDivisionError)、类型错误(TypeError)、索引异常(IndexError)、键错误(KeyError)、导入模块错误...
  • 当我在生成一个变量并将while设置为True、try/except命令后尝试返回值时,该变量不返回该值。我正在努力使这个“起点”全球化,以便可以使用它。在def start_time():while True:try:starting = int(input("Please ...
  • python3捕获异常try/except

    千次阅读 2019-11-23 17:49:52
    当使用捕获异常后,如果出现了异常,那么代码将在执行try出现异常时跳转到执行except中的代码,无论try中的代码是否有异常,程序最终依旧能走下去。 try: f= open("测试.txt", "w") f.write("写入点内容到...
  • Python中的try/except;R中的tryCatch

    千次阅读 2018-11-30 23:54:01
    2. Python中的try/except 首先贴上官方说明文档: 英文文档: https://docs.python.org/3/tutorial/errors.html 中文文档: https://docspy3zh.readthedocs.io/en/latest/tutorial/errors.html 这里我们...
  • 将您的conn = mongodb_conn()调用移出try .. except处理程序的^{,并测试是否返回None:def get_hosts()conn = mongodb_conn()if conn is None:# no connection, exit earlyreturntry:mongodb = conn.dbname....
  • 处理异常(try/except/else) 种是无论是否发生异常都将执行最后的代码(try/finally) try/except/else风格 try: <语句> #运行别的代码 except <名字>: <语句> #如果在try部份引发了'name...
  • 1、try - except 作用: 捕获程序在执行时遇到的异常情况,即一些报错。什么啥玩意儿没定义啊,符号又错了啊之类的你懂得。 意义: 因为程序在发现某个错误时,往往会中断不再向下执行,如下例子说明问题: 很...
  • python3.6 抓取异常的方法 try/except

    千次阅读 2020-04-20 16:54:14
    老版本的Python,except语句写作"except Exception,... try:  ... except Exception as e:  ... str(e) 返回字符串类型,只给出异常信息,不包括异常信息的类型,如1/0的异常信息 ‘integer ...
  • try/except:捕捉由Python或你引起的异常并恢复。 try/finally: 无论异常是否发生,执行清理行为。 捕获异常 try except 在某些情况下,如果我们不想要默认的异常行为,就需要把调用包装在try语句内,自行...
  • try: Nomal execution block except A: Exception A handle except B: Exception B handle except: Other Exception handle else: if no exception, get here finally: print('finally'...
  • python的try/except中的语法错误问题

    千次阅读 2018-08-25 22:07:30
    python的try/except中的语法错误问题 今日进行了try/except的使用,希望用来调试其余代码,而跳过为编完的代码,结果发现一个问题,如下: “` python try: sum[] except SyntaxError as e: print(Exception...
  • 异常发生在程序执行的过程中,如果python无法正常处理程序就会发生异常,导致整个程序终止执行,python中使用try/except语句可以捕获异常。 try/except 异常的种类有很多,在不确定可能发生的异常类型时可以使用...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 421,494
精华内容 168,597
关键字:

try/except