Python中的异常处理
来源:互联网 发布:java encodeuri 编辑:程序博客网 时间:2024/06/07 04:42
异常
Python中异常的处理机制:try……except……finally
- try:将可能出潜在的代码放在try语句中,try语句块中一旦出现错误,try语句块后面的的代码就不在执行。
- except:错误类型,变量名,错误处理的代码
- finally:不管try中会不会出现异常,他都会执行finally中的语句
总结一下,就是当try语句块中出现错误,刚好是except捕获的错误类型,执行执行错误代码,否则直接报错
举个例子1
try: print aexcept NameError,e: print "程序还继续执行" print "错误类型 %s"%(e)finally: print "不管有没有异常,我都会被执行"print "总算执行完了"结果:程序还继续执行错误类型 name 'a' is not defined不管有没有异常,我都会被执行总算执行完了
例二(前面讲过的例子)
data = raw_input("请输入URL:")array = data.split('/')try: #userspance = __import__(array[0]) userspance = __import__('backend.'+array[0]) model = getattr(userspance, array[0]) func = getattr(model, array[1]) Func()except (ImportError,AttributeError),e: print e print '自定义的404'
raise异常
- 和try异常不同的是,如果程序出现raise异常程序不会继续执行。他是人为抛出的,在程序员认为这里出现错误会影响整个程序的运行的地方使用。
class AgeError(IOError): passage = input()if age < 0 or age >200: raise AgeErrorprint "hello"#注意这个程序如果你输入大于200和小于0的数,他就会引发raise异常,他是系统级别的,直接中断程序执行,hello就不会被打印出来。
自定义异常和手动触发异常
自定义异常
- __srt__
他的意思是print这个对象的时候,它会打印这个__str__方法中的返回值
class MyException(Exception): def __init__(self,msg): self.error = msg def __str__(self, *args, **kwargs): return self.errorobj = MyException('错误')print obj#输出结果:错误
手动触发异常
class MyException(Exception): def __init__(self,msg): self.error = msg def __str__(self, *args, **kwargs): return self.errorraise MyException("我错了")输出结果:Traceback (most recent call last): File "E:\Epython\day04\oop\index.py", line 150, in <module> raise MyException("我错了")__main__.MyException: 我错��
- 作用
def Validata(name,pwd): if name == 'feitian' and pwd == '123': return True else: return Falsetry: res = Validata('feitian', 123) if res: print '登录成功' else: # print '登录失败' #这里就不用在print 和记录到数据库 raise Exception('登录失败')except Exception,e: print '记录到数据库' print e
阅读全文
0 0
- Python中的异常处理
- python中的异常处理
- python中的异常处理
- python中的异常处理
- python 中的异常处理
- python中的异常处理
- Python中的异常处理
- python 中的异常处理
- python中的异常处理
- Python中的异常处理
- Python中的异常处理
- Python中的异常处理
- python中的异常类型处理
- Python中的异常如何处理?
- python中的异常处理+日志例子
- python中的异常处理和调试
- python中的错误和异常处理
- Python 3.6.1中的异常处理
- struct和typedef struct(非常详细,很赞!)
- 论文:Speed/accuracy trade-offs for object detectors
- 移动端click时间、touch事件、tap事件详解
- node笔记(1)
- log4j控制台打印日志屏蔽org.springframework.*
- Python中的异常处理
- [BZOJ]2716: [Violet 3]天使玩偶 CDQ分治+树状数组
- Linux常用系统命令
- Java集合框架--单列集合(Collection)
- 研究 sscanf sprintf 与fread fwrite
- Android Studio 快速找到SDK中实现抽象类的子类
- 关于Windows编程(MFC、API等 自己明白就可)向窗口写内容不能立即显示的问题
- String 源码解析
- Linux学习dns&ddns