python异常简单使用方法

转载 2012年03月26日 17:23:57
1. try...except 
Python代码  收藏代码
  1. tommy@lab3:~$ python  
  2. Python 2.5.2 (r252:60911, Jan  4 200917: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 1in <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 2in <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 200917: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 ''  


http://www.iteye.com/topic/416890


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

python 的日志logging模块使用方法

python 的日志logging模块学习 1.简单的将日志打印到屏幕   import logging logging.debug('This is debug mes...
  • onlyanyz
  • onlyanyz
  • 2015年04月11日 12:30
  • 1050

java简单异常的处理

package class2; public class Demo3 {  public static void main(String args[])  {   try   {    int a =...
  • abc5382334
  • abc5382334
  • 2013年10月18日 09:59
  • 1978

异常怎么记录

一个正常的业务异常的级别应该是哪个? 现如今的项目里,正常的业务异常会以 INFO 记录,或者以 WARN。 其中一个原因是,监控平台监控的一般是 ERROR 或者 WARN 级别,如果把业...
  • hero710692586
  • hero710692586
  • 2015年11月09日 01:01
  • 261

Cookie的简单使用

在JSP中,使用cookie,有以下几个步骤: 1.使用page指令导入类javax.servlet.http.cookie 2.创建Cookie对象 Cookie newCookie=new Co...
  • yulei_qq
  • yulei_qq
  • 2013年11月18日 16:33
  • 1404

Python 异常继承体系

Python 异常继承体系(version python3.4) The class hierarchy for built-in exceptions is: BaseException ...
  • gaoxin12345679
  • gaoxin12345679
  • 2015年07月23日 09:55
  • 393

OD使用方法

尊重原创:http://blog.csdn.net/fhp256/article/details/7166374 零基础自学逆向分析破解,好多东西不懂,一个人一直处于痛苦中,好歹搜集了部分资料,现整...
  • woqin1990
  • woqin1990
  • 2013年12月06日 17:12
  • 1024

Python多层异常的捕获

参考: https://mozillazg.github.io/2016/08/python-the-right-way-to-catch-exception-then-reraise-anothe...
  • wupeilin20
  • wupeilin20
  • 2017年08月09日 15:45
  • 225

Python 模块paramiko简单使用方法

Python模块paramiko可以实现用SSH登录服务器,并执行shell #!/usr/bin/python import sys import paramiko ...
  • fremcode
  • fremcode
  • 2013年06月20日 18:18
  • 679

python基础之各种异常及其解决方案

我们都知道,任何编程或者脚本语言在写程序时,都会有各种各样的错误异常出现。python当然也不例外;本篇文章就是针对python基础编程中一些经常遇到的异常以及它们的解决方案。 1. Indenta...
  • u011339641
  • u011339641
  • 2015年11月20日 09:40
  • 656

Glide使用简要说明

直接用代码方式说下:Glide.with(act).load(strImage) /** * Glide加载时我们可以...
  • stimgo
  • stimgo
  • 2017年03月14日 13:53
  • 427
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:python异常简单使用方法
举报原因:
原因补充:

(最多只允许输入30个字)