一、Python标准异常

常用异常
Exception 常规错误的基类
AttributeError 试图访问一个对象没有的属性
IOError 输入/ 输出异常,基本上是无法打开文件
ImportError 无法引入模块或包,一般为路径或名称错误
IndentationError 语法错误,代码没有正确对齐(缩进错误)
IndexError 下标索引超出序列边界
KeyError 试图访问字典里不存在的键
keyboardInterrupt Ctrl+C被按下
NameError 使用一个未被赋予的变量
SyntaxError Python代码非法,代码不能编译
UNboundLocalError 试图访问一个还未被设置的局部变量
ValueError 传入一个调用者不期望的值,即类型是正确的
TypeError 对类型无效的操作
标准异常
BaseException 所有异常的基类
SystemExit 解释器请求退出
Stoplteration 迭代器没有更多的价值
GeneratorExit 生成器(generator)发送异常来通知退出
StandarError 所有的内建标准异常的基类
ArithmeticError 所有数值计算错误的基类
FloatingPointError 浮点计算错误
OverflowError 数值运算超出最大限制
ZerodivisionError 除(或取模)零(所有数据类型)
AssertionError 断言语句失败
EOFError 没有内建输入,到达EOF标记
EnvironmentError 操作系统错误的基类
OSError 操作系统错误
WindowsError 系统调用失败
ImportError 无效数据查询的基类
MemoryError 内存溢出错误
ReferenceError 弱引用(weak reference)试图访问已经垃圾回收了的对象
RuntimeError 一般的运行时的错误
NotlmplementedError 尚未实现的方法
TabError Tab和空格混用
SystemError 一般的解释器系统错误
 UnicodeError  Unicode相关的错误
 UnicodeDecodeError Unicode解码时的错误 
 UnicodeEncodeError Unicode编码时错误 
 UnicodeTranslateError Unicode转换时错误 
 Warning 警告的基类 
DeprecationWarning 关于被弃用的特征的警告
Futurewarning 关于构造将来语义会有所改变的警告
OverflowWarning 旧的关于自动提升为长整型(long)的警告
PendingDeprecationWarning 关于特性将会被废弃的警告
RuntimeWarning 可疑的运行时行为(runtime behavior)的警告                                                       
SyntaxWarning 可疑的语法的警告
UserWarning 用户代码生成的警告

二、异常处理

1.

def yichang():
while True:
try:
num = int(input('>>'))
num += 1
print('值',num)
except Exception as e:
print('{%s}我是一个错误..'%e) yichang()

捕获异常的基础写法

>>34
值 35
>>s
{invalid literal for int() with base 10: 's'} 我是一个错误。。
>>

result

2.

def yichang():
while(True):
try:
num = int(input('>>')) # 字符无法强制转换为整型
num = num+1
print("值",num)
except (ValueError ,TypeError) as e:
print("我是一个调用者不期望的错误。。。",e)
except Exception as e: # e 是try ..except .. 捕获到的异常,Exception 是基类(可以捕获全部的异常)
print('{%s} 我是一个错误。。'% e)
else:
print("要是上面没有错会执行我。。else")
finally:
print('不管上面错不错误【都会】执行我。。finally,yes,yes!!') yichang()

异常处理完全~版~,yes!!

>>1
值 2
要是上面没有错会执行我。。else
不管上面错不错误【都会】执行我。。finally,yes,yes!!
>>d
我是一个调用者不期望的错误。。。 invalid literal for int() with base 10: 'd'
不管上面错不错误【都会】执行我。。finally,yes,yes!!
>>

result

三、断言(assert)

明确的判断前面的某个条件是否符合你的要求,如果不符合,程序就是根本走不下去的错误,直接退出或抛出错误。例如:连接远程的ftp , 没有IP地址,就根本连接不上

q=2
try:
assert q == 1+1
assert q ==1+2 # 错误可以被抓住,但对于 这种错误最好不要去抓
except Exception as e:
print('我是被抓住的错误。。。%s' % e) assert q ==1+1
assert 1 == 1+2

断言

我是被抓住的错误。。。
Traceback (most recent call last):
File "D:/1.pycharm/day2018_11_15/断言.py", line 21, in <module>
assert 1 == 1+2
AssertionError

result

关于断言:https://www.cnblogs.com/shangren/p/8038935.html

断言是用来检查非法情况而不是错误情况的,用来帮开发者快速定位问题的位置。
异常处理用于对程序发生异常情况的处理,增强程序的健壮性和容错性。

python_异常处理_断言的更多相关文章

  1. python异常处理与断言以及日志模块

    python异常处理与断言 目录: 1.异常处理 2.断言(assert) 3.日志模块(logging) 4.修改之前的车票信息查询,把日志模块.异常处理加进去 1.异常处理 代码如下: 语法: t ...

  2. day34 异常处理、断言、socket之ftp协议

    Python之路,Day20 = 异常处理.断言.socket之ftp协议 参考博客:http://www.cnblogs.com/metianzing/articles/7148191.html 异 ...

  3. Swift开发第一篇——异常处理及断言

    本篇分两部分: 1.错误和异常处理 2.Swift 中的断言 1.错误和异常处理 在 OC 开发中,我们通常会将 error 置为 nil NSError *error; BOOL success = ...

  4. python异常处理和断言

    http://blog.csdn.net/pipisorry/article/details/21841883 关于异常处理有必要么的讨论 最重要的问题是你在开发过程中隐藏了bug,如果当时你没加这个 ...

  5. Python_异常处理结构与调试

    while True: x =input('Pleaes input:') try: x=int(x) print('You have input {0}'.format(x)) break exce ...

  6. 1.Python_字符串_常用办法总结

    明确:对字符串的操作方法都不会改变原来字符串的值. 1.去掉空格和特殊符号 name.strip() 去掉空格和换行符 name.strip("xx") 去掉某个字符串 name. ...

  7. python异常处理、断言

    异常处理基本语法 捕获异常 try: 语句1 语句2 ... except ERRNAME as e: print(e) #尝试执行语句,捕获到ERRNAME异常时打印异常信息e 捕获多个异常 try ...

  8. (69)Python异常处理与断言

    http://blog.csdn.net/pipisorry/article/details/21841883 断言 断言是一句必须等价于布尔真的判定;此外,发生异常也意味着表达式为假.这些工作类似于 ...

  9. 14、python异常处理及断言

    前言:本文主要介绍python中异常的处理及断言,包括异常类型.异常捕获.主动跑出异常和断言. 一.异常类型介绍 什么是异常?异常即是一个事件,该事件会在程序执行过程中发生,会影响程序的正常执行,一般 ...

随机推荐

  1. GNU Wget 1.19.1 static built on mingw32

    http://pan.baidu.com/s/1sluFAVj #wget --version GNU Wget 1.19.1 built on mingw32. -cares +digest -gp ...

  2. 【MyEclipse】JSP默认打开方式 设置(双击)

    下图为MyEclipse8.5设置界面,通过window->Preferences打开,并在General选项下选择 Editors->File Associations ,然后选择要设置 ...

  3. C++ DLL

    DLL(Dynamic Link Library)(1)DLL 的编制与具体的编程语言及编译器无关只要遵循约定的DLL接口规范和调用方式,用各种语言编写的DLL都可以相互调用.譬如Windows提供的 ...

  4. 【原创】测试基础之http_load(1)简介、安装、使用

    http_load-09Mar2016官方:https://acme.com/software/http_load/ 一 简介 http_load - multiprocessing http tes ...

  5. Centos7升级gcc版本方法之一使用scl软件集

    Centos7 gcc版本默认4.8.3,Red Hat 为了软件的稳定和版本支持,yum 上版本也是4.8.3,所以无法使用yum进行软件更新,所以使用scl. scl软件集(Software Co ...

  6. http请求在ie中F12查看显示已挂起

    页面有解析和运算工作之后 http新请求在ie中F12查看显示已挂起,http post ,请求返回少量数据

  7. linux杀死僵尸进程

    用下面的命令找出僵死进程 ps -A -o stat,ppid,pid,cmd | grep -e '^[Zz]' 命令注解: -A 参数列出所有进程 -o 自定义输出字段 我们设定显示字段为 sta ...

  8. Python基础-入门之路PYTHON-包 相对导入&绝对导入

    什么是包 包也是一种模块,但本质上就是一个文件夹 对于使用者而言 使用方式和模块没有任何区别 本质上就是一个文件夹 不同之处在于 多了一个__init__.py 叫包的初始化文件 import导入模块 ...

  9. EventBus 3.0使用详解

    01 前言 当我们进行项目开发的时候,往往是需要应用程序的各组件.组件与后台线程间进行通信,比如在子线程中进行请求数据,当数据请求完毕后通过Handler或者是广播通知UI,而两个Fragment之家 ...

  10. android招聘啦,美图秀秀欢迎你加入!

    前言 最近朋友公司招聘,美图秀秀大家一定很熟悉吧,欢迎你的加入. 了解相关更多技术以外的,可参考<除了敲代码,你还有什么副业吗?>,再往下看,今天给需要换工作或者还未找到工作的童鞋们谋一个 ...