笔记||Python3之异常处理
异常概念:1 - 代码执行产生错误,无法继续
2 - 在异常前面代码是可以执行的 ---python是解释型的
3 - 异常作用 --- 程序不要退出 - 可以继续执行 同时给予程序员一定的异常提示信息
python有两种错误很容易辨认:语法错误和异常
语法错误:while True:
print('hello world!')
异常:print(10+(1/0)) # ZeroDivisionError:disvision by zero 除数不能为0
异常的种类:try语句 -- 首先执行try子句(在关键字try和关键字except之间的语句),如果没有异常发生,忽略except的子句,try子句执行后结束。
如果在执行try子句的过程中发生了异常,那try子句余下的部分将被忽略。
如果异常的类型和except之后的名称相符,那么对应的except子句将被执行。
如果一个异常没有与任何的except匹配,那么这个异常将会传递给上层的try中。
1 - NameError.name 'name' is not defined # ‘name’没有被定义
2 - ZeroDivisionError:disvision by zero # 除数不能为0
3 - FileNotFoundError:[Errno 2] No such file or diretory:'t:/' # 找不到相应的文件或目录
4 - IndexError:list index out of range # 下标越界异常
异常的捕获+处理:
1 - 捕获预知异常
try:
except 异常类型:
处理内容

2 - 多个预知异常:执行其中一个 --- 异常按照顺序抛出
except ZeroDivisionError:
print('您输入的值不能为0!')
except ValueError:
print('输入的值的类型不对!')

3 - 捕获异常的具体信息 except ZeroDivisionError as e:
4 - 有时候我们并不知道会抛出什么异常 ---- 未知异常
①except Exception as e : ---- 捕获异常父类
②简写 except:
③捕获未知异常的具体信息: tracback.format_exc()
5 - 不管是否有异常,我们都要执行一段代码 finally:
6 - else: 没有异常的情况下,要执行一段代码

7 - 函数调用栈:① 解释器中断当前代码的执行,并抛出一个异常对象
② 并在函数的调用栈从下到上,层层的寻找捕获处理该异常的代码
③ 如果能找到就执行对应的代码
④ 如果不能则会一直找到最外层的函数,结束本次执行


8 - 自定义异常 ----- 类
继承自Exception
class NameTooLongError(Exception):
pass
笔记||Python3之异常处理的更多相关文章
- python聚类算法实战详细笔记 (python3.6+(win10、Linux))
python聚类算法实战详细笔记 (python3.6+(win10.Linux)) 一.基本概念: 1.计算TF-DIF TF-IDF是一种统计方法,用以评估一字词对于一个文件集或一个语料库 ...
- Python3 的异常处理
Python3 的异常处理,在官方文档的 tutorial 中有说明. 这里把常用的异常处理方法都列出来,方便平时查找. 捕获异常基类 Python3 要求我们的异常必须继承 Exception 类. ...
- 【Python3之异常处理】
一.错误和异常 1.错误 代码运行前的语法或者逻辑错误 语法错误(这种错误,根本过不了python解释器的语法检测,必须在程序执行前就改正) def test: ^ SyntaxError: inva ...
- 笔记:Python异常处理与程序调试
Python异常处理与程序调试 Python提供了强大的异常处理机制,通过捕获异常可以提高程序的健壮性.异常处理还具有释放对象,中止循环的运行等作用.在程序运行的过程中,如果发生了错误,可以返回事先约 ...
- Spring MVC学习笔记——登录和异常处理
1.在WEN-INF文件夹下面,添加一个login.jsp文件 <%@ page language="java" contentType="text/html; c ...
- 《java JDK7 学习笔记》之异常处理
1.java中所有的错误都会被打包为对象,JVM会尝试执行try区块中的程序代码,如果发生错误,执行流程会跳离错误发生点,然后比较catch括号中声明的异常类型,是否符合被抛出的错误对象类型,如果是的 ...
- Guava学习笔记:简化异常处理的Throwables类
有时候, 当我们我们捕获异常, 并且像把这个异常传递到下一个try/catch块中.Guava提供了一个异常处理工具类, 可以简单地捕获和重新抛出多个异常.例如: import java.io.IOE ...
- Python学习笔记整理(十七)异常处理
一.异常基础 try/except:捕捉由代码中的异常并恢复,匹配except里面的错误,并自行except中定义的代码,后继续执行程序(发生异常后,由except捕捉到异常后,不会中断程序,继续执行 ...
- Python学习笔记总结(四)异常处理
1.基础 try/except/else:[else是可选的]捕捉由代码中的异常并恢复,匹配except里面的错误,并执行except中定义的代码,后继续执行程序(发生异常后,由except捕捉到异常 ...
随机推荐
- [软件使用][matlab]最近经常用到的一些函数的意思,和用法
① cat(dim,A,B)按指定的维度,将A和B串联,dim是维度,比如1,2.1指列,2指行: ②numel(A),返回数组中,元素的个数 ③gpuArray(A),在gpu中产生一个数组A,一般 ...
- mui 底部导航栏
mui 底部导航栏 <nav class="mui-bar mui-bar-tab " id="nav"> <a class="mu ...
- Linux定时任务 crontab(-l -e)、at、batch
1.周期性定时任务crontab cron['krɒn] 一时间单位 table crontab -e 进入编辑定时任务界面,每一行代表一个定时任务,#开头的行为注释行,一行分成6列 分钟 小时 日 ...
- futex-based pthread_cond 源代码分析
pthread_cond的实现使用了几个futex来协同进行同步,以及如何来实现的. 假定你已经明白 futex,futex-requeue,以及 pthread lowlevellock. < ...
- add jar and proxy repo
1. 添加代理仓库 2. 添加host 仓库 3. 添加私有jar 4. 添加仓库到public 仓库
- 在WebView中加载HTML页面时显示进度对话框的方法
webView.setWebViewClient(new WebViewClient(){ ProgressDialog prDialog; @Overri ...
- 《VueRouter爬坑第三篇》-嵌套路由
VueRouter系列的文章示例编写时,项目是使用vue-cli脚手架搭建. 项目搭建的步骤和项目目录专门写了一篇文章:点击这里进行传送 后续VueRouter系列的文章的示例编写均基于该项目环境. ...
- BeautifulSoup模块的常用方法小结
Beautiful Soup库是解析.遍历.维护“标签树”的功能库. url = "http://desk.zol.com.cn/" request = requests.get( ...
- ASP.NET Core 2 preview 1中Program.cs,Startup.cs和CreateDefaultBuilder的探索
Exploring Program.cs, Startup.cs and CreateDefaultBuilder in ASP.NET Core 2 preview 1 ASP.NET Core 2 ...
- 以Python为例的Async / Await的编程基础
来源:Redislabs 作者:Loris Cro 翻译:Kevin (公众号:中间件小哥) 近年来,许多编程语言都在努力改进它们的并发原语.Go 语言有 goroutines,Ruby 有 fibe ...