异常以及else with语句笔记

#异常

#检测异常

try:

...#检测范围

except OSError as reason:

#出现异常后的处理代码

print('文件出错\n 出错的原因是:' + str(reason))

except TypeError as reason:

print('类型出错\n 出错的原因是:' + str(reason))

except ValueError as reason:

print('值出错\n 出错的原因是:' + str(reason))

finally:

#无论如何都会被执行的代码

...

#引出一个异常

>>> raise ZeroDivisionError(除数为零的异常)

Traceback (most recent call last):

  File "<pyshell#16>", line 1, in <module>

    raise ZeroDivisionError(除数为零的异常)

NameError: name '除数为零的异常' is not defined

-> try:

...

except:

print("出错了") #这样做不推荐,有的出错类型不会显示 例如ctrl+c

-> try:

...

except(OSError,TypeError):

print("出错了")

--------------------------------------------------------------------

#丰富的else语句

1.和 while 语句配合

def showMaxFactor(num):

    count = num //2

    while count > 1:

        if num % count == 0:

            print("%d最大的约数是%d" % (num,count))

            break

        count -= 1

    else:

        print("%d是素数!" % num)

num = int(input('请输入一个数:'))

showMaxFactor(num)

2.和 for 语句配合(和while语句相同)

3.和 try except 语句配合

try:

    int('abc')

except ValueError as reason:

    print("出错啦:" + str(reason))

else:

    print("没有任何异常")

#简洁的with语句

try:

    with = open('data.txt',w) as f:

    for each_line in f:

        print(each_line)

except OSError as reason:

    print('出错:' + str(reason))

with 会自动调用f.close()语句

--------------------------------------------------------------------

#标准异常总结

ArithmeticError 所有数值计算错误的基类

AssertionError 断言语句(assert)失败

AttributeError 属性错误,特性引用和赋值失败时会引发属性错误,尝试访问未知的对象属性

BaseException 所有异常的基类

EOFError 用户输入文件末尾标志EOF(Ctrl+d)

DeprecationWarning 关于被弃用的特征的警告

Exception:所有异常的基类,因为所有python异常类都是基类Exception的其中一员,异常都是从基类Exception继承的,并且都在exceptions模块中定义。

EnvironmentError 操作系统错误的基类

FloatingPointError 浮点计算错误

FutureWarning 关于构造将来语义会有改变的警告

GeneratorExit generator.close()方法被调用的时候,生成器(generator)发生异常来通知退出

ImportError 导入模块失败的时候

IndexError 索引错误,使用的索引不存在,索引超出序列的范围

IOError:一般常见于打开不存在文件时会引发IOError错误,也可以解理为输出输入错误

KeyError 字典中查找一个不存在的关键字时引发的关键字错误

KeyboardInterrupt 用户输入中断键(Ctrl+c)

LookupError 无效数据查询的基类

MemoryError 内存溢出(可通过删除对象释放内存,对于Python 解释器不是致命的)

NameError 尝试访问一个不存在(未申明)的变量

NotImplementedError 尚未实现的方法

OSError 操作系统产生的异常(例如打开一个不存在的文件)

OverflowError 数值运算超出最大限制

OverflowWarning 旧的关于自动提升为长整型(long)的警告

PendingDeprecationWarning 关于特性将会被废弃的警告

ReferenceError 弱引用(weak reference)试图访问一个已经被垃圾回收机制回收了的对象

RuntimeError 一般的运行时错误

RuntimeWarning 可疑的运行时行为(runtime behavior)的警告

StopIteration 迭代器没有更多的值

SyntaxError Python的语法错误,代码形式错误

SyntaxWarning 可疑的语法的警告

StandardError 所有的内建标准异常的基类

IndentationError 缩进错误

TabError Tab和空格混合使用

SystemError Python编译器系统错误

SystemExit Python编译器进程被关闭

TypeError 类型错误,内建操作或是函数应于在了错误类型的对象时会引发类型错误

UserWarning 用户代码生成的警告

UnboundLocalError 访问一个未初始化的本地变量(NameError的子类)

UnicodeError Unicode相关的错误(ValueError的子类)

UnicodeEncodeError Unicode编码时的错误(UnicodeError的子类)

UnicodeDecodeError Unicode解码时的错误(UnicodeError的子类)

UnicodeTranslateError Unicode转换时的错误(UnicodeError的子类)

ValueError 值错误,传给对象的参数类型不正确

WindowsError 系统调用失败

Warning 警告的基类

ZeroDivisionError 除数为零,在用除法操作时,第二个参数为0时引发了该错误

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、概要 ​ 一个程序即使没有任何语法错误,即使解题的逻辑也正确,在执行的时候仍然可能出现 各种“运行时错误”,导...
    唯老阅读 449评论 0 1
  • python提供了两个非常重要的功能来处理python程序在运行中出现的异常和错误。你可以使用该功能来调试pyth...
    _宁采臣阅读 1,040评论 0 10
  • 21天减脂第15天。本来今天练腿的,可是犯懒了,练腿实在太可怕了啊。 双手轮胎前举5组练前臂。俄罗斯转体一组100...
    嘟嘟白白爸爸阅读 166评论 0 0
  • 著名的民权律师与社会活动家布莱恩·史蒂文森在2012年的一次TED演讲里,讲了一个关于他外祖母的精彩故事。 史蒂文...
    大大的梦想简书阅读 798评论 0 0
  • 本月看了平生第一本武侠,《侠客行》。10月末金庸先生逝世后,各媒体回顾先生的武侠世界。11月詹青云老师的公众...
    蓬蓬Doris阅读 271评论 0 1