笔记||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捕捉到异常 ...
随机推荐
- nyoj 62-笨小熊(以对应数组中的ASC位 + 1)
62-笨小熊 内存限制:64MB 时间限制:2000ms Special Judge: No accepted:15 submit:43 题目描述: 笨小熊的词汇量很小,所以每次做英语选择题的时候都很 ...
- nyoj 96-n-1位数 (strlen, atoi, ceil)
96-n-1位数 内存限制:64MB 时间限制:3000ms 特判: No 通过数:30 提交数:47 难度:1 题目描述: 已知w是一个大于10但不大于1000000的无符号整数,若w是n(n≥2) ...
- java操作RabbitMQ添加队列、消费队列和三个交换机
假设已经在服务器上安装完RabbitMQ.我写的教程 一.发送消息到队列(生产者) 新建一个maven项目,在pom.xml文件加入以下依赖 <dependencies> <depe ...
- Cognitive Graph for Multi-Hop Reading Comprehension at Scale(ACL2019) 阅读笔记与源码解析
论文地址为:Cognitive Graph for Multi-Hop Reading Comprehension at Scale github地址:CogQA 背景 假设你手边有一个维基百科的搜索 ...
- java.lang.NoSuchMethodError: org.apache.tomcat.JarScanner.scan(Ljavax/servlet/ServletContext;Ljava/lang/ClassLoader;Lorg/apache/tomcat/JarScannerCallback;Ljava/util/Set;)V
java.lang.NoSuchMethodError: org.apache.tomcat.JarScanner.scan(Ljavax/servlet/ServletContext;Ljava/l ...
- ftp用户和密码
centos7 FTP修改密码: 1.查看ftp的用户:cat /etc/vsftpd/ftpusers 2.passwd ftp的用户 (输入两次) 3.重启ftp:service vsftpd r ...
- Python 并发总结,多线程,多进程,异步IO
1 测量函数运行时间 import time def profile(func): def wrapper(*args, **kwargs): import time start = time.tim ...
- 有效的减少代码中太多的if、else?-策略模式
写这篇文章的目的和上一篇单例模式一样,策略模式也是一种常用的设计模式,太多的if-else不仅看着不太美观而且不好维护,对于自己来说也等于复习了一遍策略模式.先说一下策略 模式的定义: 策略模式封装了 ...
- C#笔记01——注释、进制、基本数据类型、量和输入输出函数
一.注释 1.单行注释 使用方法:行首加 ” //“: VS2019中的快捷键(以后如果不特加说明都是VS2019): 注释(CTRL+E,C): 取消注释(CTRL+E,U): 2.多行注释 使用方 ...
- Java 浅拷贝、深拷贝,你知多少?
这是今天我们在技术群里面讨论的一个知识点,讨论的相当激烈,由于对这一块使用的比较少,所以对这一块多少有些盲区.这篇文章总结了所讨论的内容,希望这篇文章对你有所帮助. 在 Java 开发中,对象拷贝或者 ...