Python异常类型及处理、自定义异常类型、断言
- 异常的概念、识别报错信息
- 异常处理
- 断言的基本使用
异常类型(异常就是报错)
常见异常
NameError:名称错误 SyntaxError:语法错误 TypeError:类型错误
错误回溯
查看报错原因、报错的行,以及执行的代码
通过错误回溯,可以直接查看到这些内容
异常本身是类(基于继承)

在 Python 中所有的异常都是继承自 BaseException
分为四大类:
SystemExit:Python退出异常 KeyboardInterrupt: 键盘打断(Ctrl+C)
GeneratorExit: 生成器退出 Exception: 普通异常
异常处理
try except else finally
注意:try 后面必须跟上 except
try中的代码没有报错,才会执行else中的代码
有没有报错,都会执行finally中的代码


捕获具体的异常
except 后面写上捕获具体的异常类型(语法错误SyntaxError捕捉不到),通过as 把捕获的异常信息 储存到后面的变量里
代码中会出现的异常都是 Exception 的子类, 因此在不确定异常类型时,except 中只需要在最后加上 Exception即可(也捕捉不到语法错误)


自定义异常类型
raise 主动抛出异常的类型
自定义的异常必须继承Exception


断言assert
断言语句是将调试断言插入程序的一种便捷方式
assert 的语法规则
表达式返回 True 不报错
表达式返回 False 报错 报 AssertionError


Python异常类型及处理、自定义异常类型、断言的更多相关文章
- python异常:常见异常、处理、断言、自定义异常
一.异常是什么 二.常见异常 三.异常处理 四.不太常用语法 五.主动判处异常 六.断言 七.使用场景 八.自定义异常类型 一.异常是什么 """ 什么是异常? 异常是错 ...
- Python异常类型及包含关系
Python异常类型及包含关系,设计异常捕获时参考: BaseException +-- SystemExit +-- KeyboardInterrupt +-- GeneratorExit +-- ...
- Python基础(3) - 数据类型:3列表类型
Python 列表是序列对象,可包含任意的Python数据信息,如字符串.数字.列表.元组等.列表的数据是可变的,我们可通过对象方法对列表中的数据进行增加.修改.删除等操作.列表用[]包括起来的. 列 ...
- 【Python系统学习03】错误类型整理(一)
错误类型与可能原因分析 A.语法错误: 1.syntaxError:invalid syntax 无效的语法 print(2019小石头) # print(2019小石头) # ^ # SyntaxE ...
- python基础(1) 变量类型
变量赋值: python中的变量不需要类型声明 每个变量在使用前必须赋值,变量赋值以后才会被创建 变量在内存中创建时,包括变量的标识.名称和数据这些信息. EX: #!/usr/bin/python ...
- Python基础(2)--对象类型
Python使用对象模型来存储数据.构造任何类型的值都是一个对象 所有的Python对象都拥有三个特性:身份.类型.值 身份: 每一个对象都有一个唯一的身份来标志自己,任何对象的身份可以使用内建函数i ...
- 理解python可变类型vs不可变类型,深拷贝vs浅拷贝
核心提示: 可变类型 Vs 不可变类型 可变类型(mutable):列表,字典 不可变类型(unmutable):数字,字符串,元组 这里的可变不可变,是指内存中的那块内容(value)是否可以被改变 ...
- Net使用RdKafka引发异常RdKafka.Internal.LibRdKafka 的类型初始值设定项引发异常
在Net中VS2015用RdKafka组件开发消息发布和消费,引发下面的异常 RdKafka.Internal.LibRdKafka 的类型初始值设定项引发异常System.TypeInitializ ...
- python可变类型和不可变类型
原文地址:http://www.cnblogs.com/huamingao/p/5809936.html 可变类型 Vs 不可变类型 可变类型(mutable):列表,字典 不可变类型(unmutab ...
随机推荐
- leaflet 实现克里金插值功能(附源码下载)
前言 leaflet 入门开发系列环境知识点了解: leaflet api文档介绍,详细介绍 leaflet 每个类的函数以及属性等等 leaflet 在线例子 leaflet 插件,leaflet ...
- Python 中運算子 + 與 * 的 Overload 方法重載功能
字串 String 原本不能像數值一樣有加減乘除運算,但有例外.例如: >>> 'Good' + 'Morning''GoodMorning' 運算子 + 可將2個字串,串接起來. ...
- Servlet 使用介绍(2)
说明 本篇由于介绍Servlet容器回传请求方法service(ServletRequest req, ServletResponse res);传入参数用户请求参数request和请求返回参数res ...
- 7.8 Structured Streaming
一.Spark流计算组件的演进 二.Structured Streaming的基本原理 Structured Streaming将数据建模成一个结构化的数据表DataFrame,后到达的数据就是一 ...
- Day5- Python基础5 模块导入、time、datetime、random、os、sys、hashlib、json&pickle
本节目录: 1.模块的分类 2.模块的导入 3.time模块 4.datetime模块 5.random 6.os模块 7.sys模块 8.hashlib 9.json&pickle 一.模块 ...
- 解决“QGtkStyle could not resolve GTK……”问题
如果出现错误 QGtkStyle could not resolve GTK. Make sure you have installed the proper libraries 或者出现错误 err ...
- Leetcode103_Binary-tree-zigzag-level-order-traversal
原题: https://leetcode-cn.com/problems/binary-tree-zigzag-level-order-traversal/ 思路,如果无从下手,先要了解二叉树的广度优 ...
- matlab练习程序(克莱姆法则解方程)
<线性代数>同济第五版第一章最后一节的内容,我都差点忘记了,在这里写个简单的例子记录一下. matlab代码如下: clear all; close all; clc; % A*x = b ...
- Codeforces Round #594 (Div. 1) C. Queue in the Train 模拟
C. Queue in the Train There are
- Codeforces Round #594 (Div. 2) A. Integer Points 水题
A. Integer Points DLS and JLS are bored with a Math lesson. In order to entertain themselves, DLS to ...