`
yushine
  • 浏览: 196854 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

python异常捕获try except

 
阅读更多

python的异常处理机制设计的比较传统,在日常的开发中,基本满足我的需要

下面就python的异常,几点小小的讨论

1. try...except

Python代码  收藏代码
  1. tommy@lab3:~$ python  
  2. Python 2.5 . 2  (r252: 60911 , Jan   4   2009 17 : 40 : 26 )  
  3. [GCC 4.3 . 2 ] on linux2  
  4. Type "help" "copyright" "credits"   or   "license"   for  more information.  
  5. >>> 1 / 0   
  6. Traceback (most recent call last):  
  7.   File "<stdin>" , line  1 in  <module>  
  8. ZeroDivisionError: integer division or  modulo by zero  
  9. >>>  
  10. >>> try :  
  11. ...     1 / 0   
  12. ... except :  
  13. ...     print   "do something..."   
  14. ...  
  15. do something...  
  16. >>>  



2. try...finally

finally 里面只是执行完成try中的代码后,必须执行的代码,
即使是 try中有异常抛出,也是会去执行finally

Python代码  收藏代码
  1. >>>  try :  
  2. ...     1 / 0   
  3. ... finally :  
  4. ...     print   "I just finally do something ,eg: clear!"   
  5. ...  
  6. I just finally  do something ,eg: clear!  
  7. Traceback (most recent call last):  
  8.   File "<stdin>" , line  2 in  <module>  
  9. ZeroDivisionError: integer division or  modulo by zero  
  10. >>>  



所以,一般情况下,finally里面执行的都是一些清理工作,比如:关闭文件描述符,释放锁等

Python代码  收藏代码
  1. >>>  try :  
  2. ...     fd=open("have-exists-file" "r" )  
  3. ...     print   "do some thing ,read file ,write file..."   
  4. ... finally :  
  5. ...     fd.close()  
  6. ...  
  7. do some thing ,read file ,write file...  
  8. >>>  



多线程中,对锁的使用

Python代码  收藏代码
  1. tommy@lab3:~$ python  
  2. Python 2.5 . 2  (r252: 60911 , Jan   4   2009 17 : 40 : 26 )  
  3. [GCC 4.3 . 2 ] on linux2  
  4. Type "help" "copyright" "credits"   or   "license"   for  more information.  
  5. >>> import  threading  
  6. >>> l_lock=threading.RLock()  
  7. >>> try :  
  8. ...     l_lock.acquire()  
  9. ...     print   "do some thing."   
  10. ... finally :  
  11. ...     l_lock.release()  
  12. ...  
  13. True   
  14. do some thing.  
  15. >>>  




注意,finally中,如果出现异常,外部如果没有相应的捕获机制,该异常会层层抛出,直到最顶端,然后解释器停止
一般我们会这样做

Python代码  收藏代码
  1. >>>  try :  
  2. ...     try :  
  3. ...         fd=open("no-exists-file" "r" )  
  4. ...         print   "do some thing ,read file ,write file..."   
  5. ...     finally :  
  6. ...         fd.close()  
  7. ...except :  
  8. ...    print   "catch finally exception."   
  9. do some thing ,read file ,write file...  
  10. >>>  



3. 封装了一个全局的捕获异常的函数(偶比较懒,就用了全部的捕获异常方法)

Python代码  收藏代码
  1. import  traceback  
  2. import  sys  
  3. def  trace_back():  
  4.     try :  
  5.         return  traceback.print_exc()  
  6.     except :  
  7.         return   ''   



具体使用

Python代码  收藏代码
  1. try :  
  2.     do_something()  
  3. except :  
  4.     print  trace_back()  



写的比较散,主要是想说说,python异常的简单使用,已经封装的一个简单的获得异常发生时,全局保持的异常信息(可能不准确,但基本够用)

分享到:
评论

相关推荐

    Python使用try except处理程序异常的三种常用方法分析

    主要介绍了Python使用try except处理程序异常的三种常用方法,结合实例形式分析了Python基于try except语句针对异常的捕获、查看、回溯等相关操作技巧,需要的朋友可以参考下

    python try except用法介绍

    python try except用法 在Python中,try-except语句用于捕获和处理异常。

    python try except 捕获所有异常的实例

    以上这篇python try except 捕获所有异常的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持软件开发网。 您可能感兴趣的文章:python中异常捕获方法详解python traceback捕获并打印...

    对于Python异常处理慎用“except:pass”建议

    翻译自StackOverflow中一个关于Python异常处理的问答。 问题:为什么“except:pass”是一个不好的编程习惯? 我时常在StackOverflow上看到有人评论关于except: pass的使用,他们都提到这是一个不好的Python编程习惯...

    Python try except异常捕获机制原理解析

    主要介绍了Python try except异常捕获机制原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    Python中的异常处理try/except/finally/raise用法分析

    异常发生在程序执行的过程中,如果python无法正常处理程序就会发生异常,导致整个程序终止执行,python中使用try/except语句可以捕获异常。 try/except 异常的种类有很多,在不确定可能发生的异常类型时可以使用...

    【Python】详解 try-except-else-finally 语句 —— 异常处理完全解读(上)

    二、异常捕获 (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 小结 三、异常抛出 (Exception ...

    关于Python中异常(Exception)的汇总

    python中的异常使用继承结构创建,可以在异常处理程序中捕获基类异常,也可以捕获各种子类异常,python中使用try…except语句捕获异常,异常子句定义在try子句后面。 Python中的异常处理 异常处理的语句结构 try:...

    python基础教程:在python中利用try..except来代替if..else的用法

    在有些情况下,利用try…except来捕捉异常可以起到代替if…else的作用。 比如在判断一个链表是否存在环的leetcode题目中,初始代码是这样的 # Definition for singly-linked list. # class ListNode(object): # def ...

    python的异常处理.rar

    python的异常处理,异常捕获,try:except:else:finally:

    python中判断文件结束符的具体方法

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

    Python 异常的捕获、异常的传递与主动抛出异常操作示例

    本文实例讲述了Python 异常的捕获、异常的传递与主动抛出异常操作。分享给大家供大家参考,具体如下: 异常的捕获 demo.py(异常的捕获): try: # 提示用户输入一个整数 num = int(input("输入一个整数:")) #...

    python中异常捕获方法详解

    在Python中处理异常使用的是try-except代码块,try-except代码块放入让python执行的操作,同时告诉python程序如果发生了异常该怎么办,try-except这个功能其实很多入门书籍中都放到了高级篇幅里,在入门的时候一般...

    python try 异常处理(史上最全)

    在程序出现bug时一般不会将错误信息显示给用户,而是现实一个提示的页面,通俗来说就是不让用户看见大黄页!...在python的异常中,有一个万能异常:Exception,他可以捕获任意异常 s1 = 'hello' try: int(s1) excep

    python try except返回异常的信息字符串代码实例

    问题 ... try: int(x) except Exception as e... '''异常的父类,可以捕获所有的异常''' print(e) # e变量是Exception类型的实例,支持__str__()方法,可以直接打印。 invalid literal for int() with base 10: 'x' try:

    通过实例了解Python异常处理机制底层实现

    要了解try except异常处理的用法,简单来说,当位于 try 块中的程序执行出现异常时,会将该种异常捕获,同时找到对应的 except 块处理该异常,那么这里就有一个问题,它是如何找到对应的 except 块的呢? 我们知道,...

    在python中利用try..except来代替if..else的用法

    在有些情况下,利用try…except来捕捉异常可以起到代替if…else的作用。 比如在判断一个链表是否存在环的leetcode题目中,初始代码是这样的 # Definition for singly-linked list. # class ListNode(object): # def...

Global site tag (gtag.js) - Google Analytics