1、python下异常如何处理:

 #encoding=utf-8

 """
python遇到异常,程序直接运行
try:
"判断有可能抛出异常的代码"
print "haha"
except:
"异常下运行的代码"
else:
"运行没有异常时候的逻辑"
finally:
"不管try判断如何,该代码总会执行" 合理利用异常:
1、不得不用的地方采用异常;
2、正确使用异常:需要对异常进行捕获
比如:except IOError: """ a = [1, 2, 3, 4, 5, 6] print a[4] try:
print a[6]
except:
print u'哈哈' print "继续可以到这里" try:
print a[6]
except:
print "huhu"
else:
print "hoho"
finally:
print "hehe" import urllib
sth_url = "http://wsdfsdf" try:
d = urllib.urlopen(sth_url)
except:
print "出错了"
else:
content = d.read()
finally:
pass
#d.close() """
异常的note:
1、一个try对应一个except
2、使用python内置异常,来对应自身情况;
IOErro, IndexError
3、捕获异常的办法:
import logging
logger = logging.getLogger()
#logfile = 'excetion_demo.log' #log文件名
hdlr = logging.FileHandler('/tmp/sendlog.txt')
formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s')
hdlr.setFormatter(formatter)
logger.addHandler(hdlr) #logging绑定
logger.setLevel(logging.NOTSET) import sys, logging
try:
d = urllib.urlopen("www.kdkdk.com")
except:
exc = sys.exc_info()
loggin.debug(exc[1]
print exc[1]
print exc
4、断言,assert
assert 表达式,"出错后抛出message"
assert 1>4, "expression Error"
先断言绝对不能发生的错误,然后在处理异常;
""" """
with用法:自动回收垃圾
#进入时,调用对象的__enter__
#退出时,调用对象的__exit__函数 d = open('a', 'r')
d.read()
d.close() with open('a', 'r') as d:
content = a.read()
""" #with示例:
class sth(object):
def __init__(self, xixi):
self.a = xixi def __enter__(self):
print u'哈哈, 进来了'
return self.a def __exit__(self, type, value, traceback):
print u'哈哈,出去了' with sth("gg") as s:
print s #s为__enter__返回值 """
定义自己的异常类
""" class myException(Exception):
def __init__(self, error, msg):
self.args = (error, msg)
self.error = error
self.msg = msg try:
raise myException(1, "my exception")
except Exception as e:
print str(e)

python下异常处理的更多相关文章

  1. Python进阶----异常处理

    Python进阶----异常处理 一丶错误和异常   错误:       语法错误(这种错误,根本过不了python解释器的语法检测,必须在程序执行前就改正) #语法错误示范一 if #语法错误示范二 ...

  2. python的异常处理机制

    异常机制己经成为衡量一门编程语言是否成熟的标准之一,使用异常处理机制的 Python 程序有更好的容错性,更加健壮. 对于计算机程序而言,情况就更复杂了一一没有人能保证自己写的程序永远不会出辛苦!就算 ...

  3. python下ssh的简单实现

    python下的ssh都需要借助第三方模块paramiko来实现,在使用前需要手动安装. 一.python实现ssh (1) linux下的ssh登录 root@ubuntu:~# ssh morra ...

  4. python下编译py成pyc和pyo

     python下编译py成pyc和pyo   其实很简单, 用 python -m py_compile file.py python -m py_compile /root/src/{file1,f ...

  5. Python下划线与命名规范

    Python下划线与命名规范 先看结论,节省只想知道答案你的宝贵时间: _xxx 不能用于from module import * 以单下划线开头的表示的是protected类型的变量.即保护类型只能 ...

  6. python下的orm基本操作(1)--Mysql下的CRUD简单操作(含源码DEMO)

    最近逐渐打算将工作的环境转移到ubuntu下,突然发现对于我来说,这ubuntu对于我这种上上网,收收邮件,写写博客,写写程序的时实在是太合适了,除了刚接触的时候会不怎么完全适应命令行及各种权限管理, ...

  7. Python下科学计算包numpy和SciPy的安装

    转载自:http://blog.sina.com.cn/s/blog_62dfdc740101aoo6.html Python下大多数工具包的安装都很简单,只需要执行 “python setup.py ...

  8. python下的复杂网络编程包networkx的安装及使用

    由于py3.x与工具包的兼容问题,这里采用py2.7 1.python下的复杂网络编程包networkx的使用: http://blog.sina.com.cn/s/blog_720448d30101 ...

  9. Python学习入门基础教程(learning Python)--5.1 Python下文件处理基本过程

    Python下的文件读写操作过程和其他高级语言如C语言的操作过程基本一致,都要经历以下几个基本过程. 1. 打开文件 首先是要打开文件,打开文件的主要目的是为了建立程序和文件之间的联系.按程序访问文件 ...

随机推荐

  1. android studio2.0 搭建Robotium环境--有被测源代码的情况下

    1.导入robotium-solo-5.2.1.jar 包    导入junit:4.12.jar2.app- -src- -main- -libs 或者app-libs下 复制进去后,右键add a ...

  2. 百度ueditor富文本编辑器的使用

    百度ueditor富文本编辑器的使用 //以下为我在官网下载的ueditor v1.3.5 php版的大楷配置步骤第一步: //配置文件的引入应该比功能文件先引入,最后设置语言类型.即:editor. ...

  3. WireShark抓包时TCP数据包出现may be caused by ip checksum offload

    最近用WireShark抓包时发现TCP数据包有报错:IP Checksum Offload,经过查阅资料终于找到了原因 总结下来就是wireshark抓到的数据包提示Checksum错误,是因为它截 ...

  4. 经典灰鸽子lcx

    方法1路由配置 在路由器配置 进入虚拟服务器 填入ip 端口 就可以了方法2内网域名解析想以前的花生客 科迈都有这项免费业务但现在基本不提供了如果那个网站还有内网解析的功能 大家一定要发上来哦方法3p ...

  5. jquery 工作笔记,不断整理中..

    $('input:radio[name="ruleType"]:checked').val()  //获得radio选中的值 $("input[name='Q_lastU ...

  6. Umbraco学习1------安装

    最近在做一个公益项目,考虑到成本和性价比,最终决定还是选用Umbraco作为CMS平台进行开发. 顺便也借机将Umbraco的使用整理成系列,便于以后的记忆. Umbraco的所有信息,基本都可以在h ...

  7. Oracle SQL CPU占用高

    Oracle数据库经常会遇到CPU利用率很高的情况,这种时候大都是数据库中存在着严重性能低下的SQL语句,这种SQL语句大大的消耗了CPU资源,导致整个系统性能低下.当然,引起严重性能低下的SQL语句 ...

  8. Delphi2010新发现-类的构造和析构函数功能

    Delphi2010发布了. 虽然凭着对Delphi的热爱第一时间就安装了,但是现在可能是年纪大了,对新事物缺乏兴趣了.一直都没有仔细研究. 今天有点时间试了一下新功能. 本来C#和Delphi.NE ...

  9. HDU 5724 Chess(博弈论)

    [题目链接] http://acm.hdu.edu.cn/showproblem.php?pid=5724 [题目大意] 给出一个n行,每行有20格的棋盘,棋盘上有一些棋子,每次操作可以选择其中一个棋 ...

  10. java单链表代码实现

    用惯了C++,java写起来果然不太爽...不废话了,上代码... package javaInnerclassDemo; class Link{ class Node{ private String ...