一、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. C语言 16进制转float

    float hex_to_float(uint8_t *data) { float num = 0.0; uint8_t dd[4] = {data[0], data[1], data[2], dat ...

  2. Centos 6 安装FreeSWITCH

    为了安装FreeSWITCH ,我选择的Linux是CentOS,目前最新的Centos版本是6.具体安装CentOS的是步骤详见网上的其它资料,本节的主要目的是为了记录FreeSWITCH的安装过程 ...

  3. Linux平台 Oracle 18c RAC安装

    Linux平台 Oracle 18c RAC安装Part1:准备工作 2018-08-04 22:20 by AlfredZhao, 1065 阅读, 0 评论, 收藏, 编辑 一.实施前期准备工作 ...

  4. Android性能优化:手把手带你全面实现内存优化

      前言 在 Android开发中,性能优化策略十分重要 本文主要讲解性能优化中的内存优化,希望你们会喜欢 目录   1. 定义 优化处理 应用程序的内存使用.空间占用 2. 作用 避免因不正确使用内 ...

  5. ORACLE的数据类型的长度合集

    --  ORACLE的数据类型常用的数据库字段类型如下:字段类型 中文说明 限制条件 其它说明CHAR 固定长度字符串 最大长度2000 bytesVARCHAR2 可变长度的字符串 最大长度4000 ...

  6. Confluence 6 配置管理员会话的安全

    Confluence 通过使用 Confluence administration console 来显示管理员访问后台管理的功能或者管理一个空间.当一个 Confluence 管理员(以管理员身份登 ...

  7. ES6学习路上的小学生,promise处理异步操作,简易原始起步之用。先能用,再深究!

    ES6的promise对象,让我们更容易的处理这样的需求:执行完一个方法以后,再去执行下一个方法. 理解尚浅之时,先用于项目之中. var promise1 = new Promise(functio ...

  8. 兼容性很好的纯css圆角

    <!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8& ...

  9. linux三剑客

    grep grep       "oldboy"     test.txt   过滤掉文件中oldboy的字符串 -v                               ...

  10. Python关于类的实操

    实操一:总结 1.什么是绑定到对象的方法,如何定义,如何调用,给谁用?有什么特性? 2.什么是绑定到类的方法,如何定义,如何调用,给谁用?有什么特性? 3.什么是解除绑定的函数,如何定义,如何调用,给 ...