python Exception
1.except:用来捕捉异常,如果没有捕捉到,则向上层exception传递
2.finally:用来保证其代码一定会执行,可以做收尾工作,比如关闭文件等等。
3.在with as 中,
4.try语句执行流程,
首先程序标识try语句启动时候的程序环境(便于后面恢复)。
1.遇到异常
1.跳转到第一个匹配的except语句执行,执行完毕,跳到try之后代码执行。
2.如果没有匹配的except语句,则向上传递try之前(传到顶层,则系统处理,终止执行并打印出错信息)
2.如果没有遇到异常,则执行else语句。
3.finanlly:如果遇到异常,执行完这层异常处理后执行finally,或者该层没有处理则执行finally后抛出到上层。
5.语法
try:#后面可以接 except {else}; finally; except {else} finally. except:#捕捉某异常 except:#捕捉某异常 except:#捕捉某异常 else:#无异常情况,必须与except连用 finally:#保证执行
6.Exception异常:except Exception: 捕捉所有除了和系统退出有关的一切异常。
7.raise
raise #重新引发异常
raise Exception #隐式创建不带参数的异常类
raise Exception()
raise Exception from otherException #异常链
8.assert:用于显示用户设定的约束条件,data用于显示
assert 条件,data
9.with as:支持文件,锁等
_enter_方法 ,返回值赋值给as
_exit_(type,value,traceback)方法:with代码块无论有无异常,该函数被调用,如果返回值为false,有异常则重新引发异常。
10.exception是超类匹配:捕捉超类下面的子类实例。
11.except捕捉并终结异常传递,而finally不会终结异常的向上传递。
python Exception的更多相关文章
- python Exception raise
异常是指程序中的例外,违例情况.异常机制是指程序出现错误后,程序的处理方法.当出现错误后,程序的执行流程发生改变,程序的控制权转移到异常处理.Exception类是常用的异常类,该类包括Standar ...
- python Exception中的raise、assert
使用raise抛出异常 当程序出现错误,python会自动引发异常,也可以通过raise显式地引发异常.一旦执行了raise语句,raise后面的语句将不能执行. 演示raise用法. try: s ...
- Python Exception处理
Python中的错误处理分为两类:语法错误和异常处理.语法错误一般是指由于python语句.表达式.函数等存在书写格式活语法规则上的错误抛出的异常,如python常见的缩进控制,若同层次的执行语句存在 ...
- 为什么会出现Python Exception <class 'gdb.MemoryError'> Cannot access memory at address 问题?
问题描述: 把列表listview写入notebook里. 在main函数中, win = create_and_set_a_window(); book = gtk_notebook_ ...
- python exception的传递
try: block except1: except2: ... 如果block中出现了except,那么会先取匹配except1,如果匹配了,进行处理,程序继续执行. 如果except1没有匹配上, ...
- programing Python --Sys module
Recall that every python module has a built_in __name__ variable that python sets to the __main__ st ...
- Embeding Python & Extending Python with FFPython
Introduction ffpython is a C++ lib, which is to simplify tasks that embed Python and extend Python. ...
- python笔记之异常
异常 內建异常在exceptions模块内,使用dir函数列出模块的内容. 自定义异常类:继承基类Exception. 异常可以使用raise语句引发,可以使用try ... except ... e ...
- 使用Boost.Python构建混合系统(译)
目录 Building Hybrid Systems with Boost.Python 摘要(Abstract) 介绍(Introduction) 设计目标 (Boost.Python Design ...
随机推荐
- 一些c++
1.static 静态局部对象: 一旦被创建,在程序结束前都不会被撤销.当定义静态局部对象的函数结束时,静态局部对象不会撤销. 2.内联函数: 避免函数调用的开销. 在函数返回类型前加上关键字 inl ...
- Python基础学习六 操作Redis
import redis r = redis.Redis(host=',db=1) #set get delete setex 都是针对string类型的 k-v # r.set('louis_ses ...
- C#操作SQLIte数据。
using System; using System.Data; using System.Text.RegularExpressions; using System.Xml; using Syste ...
- Ros学习——移动机器人Ros导航详解及源码解析
1 执行过程 1.运行仿真机器人fake_turtlebot.launch:加载机器人模型——启动机器人仿真器——发布机器人状态 2.运行amcl节点fake_amcl.launch:加载地图节点ma ...
- cocos2D-x demo 的源码分析 #define ..##.. 的妙用.
最近在看cocos2d-x 但不知道如何下手,于是先看一下他编译的完成的testcpp的源码.发现了下面一段程序 typedef CCLayer* (*NEWTESTFUNC)(); #define ...
- sqlserver临时表或表变量代替游标
在很多场合,用临时表或表变量也可以替代游标 临时表用在表没有标识列(int)的情况下. 在表有标识列(int)的情况下可以用表变量,当然也可以用临时表. 利用临时表或表变量的原因时,生成一个连续的列 ...
- PHP学习笔记之continue与break
百度中有人这样解释:break是结束整个循环体,continue是结束单个循环体.昨天看燕十八老师PHP视频,讲到break,continue时,举了一个例子,理解更容易.天龙八部中,西夏国公主选婿, ...
- Python3 BeautifulSoup和Pyquery解析库随笔
BeautifuSoup和Pyquery解析库方法比较 1.对象初始化: BeautifySoup库: from bs4 import BeautifulSoup html = 'html strin ...
- Entity Framework Tutorial Basics(43):Download Sample Project
Download Sample Project: Download sample project for basic Entity Framework tutorials. Sample projec ...
- 再谈JavaScript的closure--JavaScript 闭包
关于JavaScript的闭包,在我的博客上之前有一篇文章 https://www.cnblogs.com/wphl-27/p/8491327.html 今天看了几篇文章,感觉又有了一些更深的理解,特 ...