Python必须知道的异常处理
异常处理
把可能会发生的错误,提前在代码里进行捕捉(监测)
try :
code
except Exception:
出错后要执行的代码
下面是常见的异常:
attributeError 试图访问一个对象没有的属性
Nameerror 访问一个没有变量
Valueerror 值类型不匹配
importError 导入不存在的模块
indentationError 缩进错误 --> 强类型错误,只要犯这种错误程序就会崩溃,这种错误是抓不到的
syntaxError 语法错误 --> 同上
indexError 下标索引超出边界错误
Keyboardinterrupt ctrl+c 无法退出程序
EOFError ctrl+d 无法退出程序
Typeerror 类型不符合
Unboundlocalerror 试图访问一个还未被设置的局部变量,基本上是由于另有一个同名的全局变量,导致你以为正在访问它
valueError 传入一个调用者不期望的值,及时值的类型是正确的
# -*- coding:utf-8 -*- while True:
num1 = input("num1>>").strip()
num2 = input("num2>>").strip()
try:
num1 = int(num1)
num2 = int(num2)
result = num1 + num2
print(result,name)
# except Exception as err:
# print("info is error. check")
# print(err)
except NameError as e:
print(e)
except ValueError as e:
print(e)
Try ..else..finally
Else 不触发异常执行里边的代码
Finally 无论触发异常与否都会执行里边的代码
自定义异常
# -*- coding:utf-8 -*-
#自定义异常 class YoutubeConnectionError(BaseException):
def __init__(self,msg):
self.msg = msg def __str__(self):
return self.msg name = "Alex"
d = [1,2,3] while True:
num1 = input("num1>>").strip()
num2 = input("num2>>").strip()
try:
num1 = int(num1)
num2 = int(num2)
result = num1 + num2
print(result)
#raise ImportError('123')
raise YoutubeConnectionError('根据法律不能翻墙')#主动触发异常
#d[3]
# except Exception as err:
# print("info is error. check")
# print(err)笔
except YoutubeConnectionError as e:
print(e)
except NameError as e:
print(e)
except ValueError as e:
print(e)
except Exception as e:
print('发生错误')
else:
print("Normal!!!,不发生异常走这里")
finally:
print('any无论错误与否,都会走这里')
Assert 断言的用途
Assert语法用于判断代码是否符合执行预期
Assert 1+1=2
Assert 1+ 2 = 2
它一般用来做单元测试,调用上千个借口,看是都会出现异常
def my_interface(name,age,sorce):
assert type(name) is str
assert type(age) is int
assert type(sorce) is float my_interface("Alex",22,66.3)
Python必须知道的异常处理的更多相关文章
- Python全栈【异常处理】
Python全栈[异常处理] 本节内容: 1.异常处理 2.什么时候用异常处理 异常处理 1.异常处理: 异常就是程序运行时发生错误的信号,异常处理是在编程过程中为了增加友好性,在程序出现bug时一般 ...
- Python第十一天 异常处理 glob模块和shlex模块 打开外部程序和subprocess模块 subprocess类 Pipe管道 operator模块 sorted函数 os模块 hashlib模块 platform模块 csv模块
Python第十一天 异常处理 glob模块和shlex模块 打开外部程序和subprocess模块 subprocess类 Pipe管道 operator模块 sorted函 ...
- Python标准异常和异常处理详解
python提供了两个非常重要的功能来处理python程序在运行中出现的异常和错误.你可以使用该功能来调试python程序. 1.异常处理: 本站Python教程会具体介绍. 2.断言(Asserti ...
- Python开发基础-Day23try异常处理、socket套接字基础1
异常处理 错误 程序里的错误一般分为两种: 1.语法错误,这种错误,根本过不了python解释器的语法检测,必须在程序执行前就改正 2.逻辑错误,人为造成的错误,如数据类型错误.调用方法错误等,这些解 ...
- python基础之try异常处理、socket套接字基础part1
异常处理 错误 程序里的错误一般分为两种: 1.语法错误,这种错误,根本过不了python解释器的语法检测,必须在程序执行前就改正 2.逻辑错误,人为造成的错误,如数据类型错误.调用方法错误等,这些解 ...
- python面向对象其他相关-异常处理-反射
1.isinstance(obj, cls) 检查是否obj是否是类 cls 的对象 2.issubclass(sub, super) 检查sub类是否是 super 类的派生类 n1 = 10 ...
- 洗礼灵魂,修炼python(28)--异常处理(2)—>运用异常
你可能会想,卧槽这标题取的,前面不是说异常就是报错吗?异常还能运用? 是的,异常确实可以运用,可以刻意制造异常,在出现异常时捕获异常并对异常处理,所以进入本篇博文的话题—异常处理 异常处理: 异常处理 ...
- 【python学习-6】异常处理
最近在网上看到了一种学习方法名叫费曼学习法,说的是学习一个东西的时候,要尝试着给别人讲出来,就是一种备课式的学习. 第一步,选择一个你想要理解的概念, 然后拿出一张白纸, 把这个概念写在白纸的最上边. ...
- python爬虫之urlError异常处理
1.URLError URLError产生的原因: (1)网络无连接,即本机无法上网 (2)连接不到特定的服务器 (3)服务器不存在 import urllib.request import urll ...
- python之旅:异常处理
一 什么是异常 异常就是程序运行时发生错误的信号(在程序出现错误时,则会产生一个异常,若程序没有处理它,则会抛出该异常,程序的运行也随之终止),在python中,错误触发的异常如下 一个异常分为三部分 ...
随机推荐
- Java实现 蓝桥杯VIP 算法提高 密码锁
算法提高 题目 2 密码锁 时间限制:1.0s 内存限制:1.0GB 问题描述 你获得了一个据说是古代玛雅人制作的箱子.你非常想打开箱子看看里面有什么东西,但是不幸的是,正如所有故事里一样,神秘的箱子 ...
- Linux用户管理命令useradd、passwd、who详解
创建用户命令useradd 命令useradd,所在路径为: 可以看到命令useradd的路径为:/usr/sbin/useradd,因此它的执行权限是root 命令的功能是创建一个新用户,例如:us ...
- 视频处理之OSD
欲观原文,请君移步 OSD简介 OSD,on-screen display的简称,即屏幕菜单式调节方式.一般我们按一下Menu键后屏幕弹出的显示器各项调节项目信息的矩形菜单,比如调亮度,色调,饱和度等 ...
- let与var的一个重要区别
我们先来看下面这一段代码 html代码 <ul> <li>sdfsdagsdgsa</li> <li>sdfsdagsdgsa</li> & ...
- Java虚拟机性能调优(一)
Java虚拟机监控与调优,借助Java自带分析工具. jps:JVM Process Status Tool,显示指定系统内所有的HotSpot虚拟机进程 jstat:JVM Statistics M ...
- 除了FastJson,你也应该了解一下Jackson(二)
概览 上一篇文章介绍了Jackson中的映射器ObjectMapper,以及如何使用它来实现Json与Java对象之间的序列化和反序列化,最后介绍了Jackson中一些序列化/反序列化的高级特性.而本 ...
- 常见的几种java排序算法
一.分类: 1)插入排序(直接插入排序.希尔排序) 2)交换排序(冒泡排序.快速排序) 3)选择排序(直接选择排序.堆排序) 4)归并排序 5)分配排序(基数排序) 所需辅助空间最多:归并排序 所需辅 ...
- SpringBoot整合分布式ZooKeeper和Dubbo
ZooKeeper ZooKeeper是一个分布式的,开放远吗的分布式应用程序协调服务.它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护.域名服务.分布式同步.组服务等. 服务提供者 ...
- Calender类——字段值介绍
今天,看到有人这样编写代码,有点不明所以: Calendar calendar = Calendar.getInstance(); calendar.get(1): calendar.get(2)+1 ...
- sorted排序
sorted(['bob', 'about', 'Zoo', 'Credit']) # ['Credit', 'Zoo', 'about', 'bob'] ''' 默认情况下,对字符串排序,是按照AS ...