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. C#学习日志 day 3 ------ 基本语句示例

    写c#首先需要知道的就是数据类型,这里是所有c#中的所有数据类型以及说明.

  2. poj 1091 跳骚

    /** 题意: 求对于小于m的n个数, 求x1*a1 + x2*a2+x3*a3........+xn*an = 1 即求 a1,a2,a3,....an 的最大公约数为1 , a1,a2....an ...

  3. 快速学习使用 Windows Azure 上的 SharePoint Server 2013

     为了在当今的企业环境中占据一席之地,您需要能够迅速顺应变化和应对挑战.有时,需要及时调整您的SharePoint 基础结构以保持竞争优势. 基础结构即服务可通过随时使用.即付即用的解决方案应对这 ...

  4. 第25周五迷茫定位&转行理论建议

    今天下午请假办了无房证明和单身证明,准备开始贷款买房的征程,在犹豫纠结中我选择推进这个事情,之前的经验告诉我生活中可以面临改变或不改变境况的选择是要尽可能的选择改变,因为我还年轻.回来后知乎上看了一个 ...

  5. 【Perl学习笔记】1.perl的ref 函数

    perl有引用的概念:一组数据实际上是另一组数据的引用.这些引用称为指针,第一组数据中存放的是第二组数据的头地址.引用的方式被用得相当普遍,特别是在面向对象的模块.函数的参数传递等常见.但perl对每 ...

  6. D3.js学习记录【转】【新】

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  7. cpu亲和力总结taskset和setcpu及其他相关

    一:taskset -- 获取或指定进程运行的CPU. man taskset出现 CPU affinity is a scheduler property that "bonds" ...

  8. ArrayList和LinkedList的各项操作性能比较

          如果用java编写程序,我们通常存储易变的数据集合时用到的数据结构往往是ArrayList,不过,在JDK中还存在另一个结构--LinkedList,只不过我们通常不用,原因在于性能问题, ...

  9. ural 1057(数位dp)

    数位dp题,关键是用树的思维去考虑. 对于一个数字X,要是能表示成K个B的不同次幂,等价于X在B进制下有且只有K个位上面的数字为一,其他位上的数字都为0. 具体读者可以去参考,国家集训队李聪的论文,里 ...

  10. xmu1214: 购物

    1214: 购物 Time Limit: 500 MS  Memory Limit: 64 MBSubmit: 10  Solved: 5[Submit][Status][Web Board] Des ...