zoukankan      html  css  js  c++  java
  • 异常处理

    一、什么是异常

    异常就是程序运行时发生错误的信号(在程序出现错误时,则会产生一个异常,若程序没有处理它,则会抛出该异常,程序的运行也随之终止),在python中,错误触发的异常如下

    1565443317256

    1.语法错误

    不可容忍的

    2.逻辑错误

    可以容忍,在程序的运行的时候某个地方逻辑有错误

    二 、异常的种类

    1.常用异常

    AttributeError 试图访问一个对象没有的树形,比如foo.x,但是foo没有属性x
    IOError 输入/输出异常;基本上是无法打开文件
    ImportError 无法引入模块或包;基本上是路径问题或名称错误
    IndentationError 语法错误(的子类) ;代码没有正确对齐
    IndexError 下标索引超出序列边界,比如当x只有三个元素,却试图访问x[5]
    KeyError 试图访问字典里不存在的键
    KeyboardInterrupt Ctrl+C被按下
    NameError 使用一个还未被赋予对象的变量
    SyntaxError Python代码非法,代码不能编译(个人认为这是语法错误,写错了)
    TypeError 传入对象类型与要求的不符合
    UnboundLocalError 试图访问一个还未被设置的局部变量,基本上是由于另有一个同名的全局变量,
    导致你以为正在访问它
    ValueError 传入一个调用者不期望的值,即使值的类型是正确的
    

    三、异常处理

    为了保证程序的健壮性与容错性,即在遇到错误时程序不会崩溃,我们需要对异常进行处理

    1.异常处理语法格式

    try:
    	被检测的代码块
    except 异常类型 as f:  #将错误类型赋值给f
    	try中检测到异常就执行这句
    else:
        print('没有任何报错是触发')
    

    2.两个万能异常

    所有异常报错都接收

    1.except Exception as f:

    2.except BaseException as f:

    try:
    	被检测的代码块
    except Exception as f:  #万能异常
    	try中检测到异常就执行这句
    	
    try:
    	被检测的代码块
    except BaseException as f:  #万能异常
    	try中检测到异常就执行这句
    

    3.无论是否发生异常,都执行finally内部代码

    try:
    	被检测的代码块
    except Exception as f:  #万能异常
    	try中检测到异常就执行这句
    finally:
    	print('无论是否发生异常,都执行finally内部代码')
    

    四、主动抛异常

    关键字:raise

    1.主动抛出异常格式

    raise 随便写的纠错类型(内容)

    a = 12
    if a == 123:
        pass
    else:
        raise bushi('不对')
    

    2.断言 assert

    猜某个数据状态,猜对正常走,猜错报错

  • 相关阅读:
    【NOIP2016提高A组集训第14场11.12】随机游走
    poj2378 树形DP
    简单博弈论总结加例题解析
    uva11426 欧拉函数应用
    poj3090欧拉函数求和
    lightOJ1370 欧拉函数性质
    hdu4497 正整数唯一分解定理应用
    hdu1215 正整数唯一分解定理应用
    lightoj 1236 正整数唯一分解定理
    素数筛两种方法
  • 原文地址:https://www.cnblogs.com/WQ577098649/p/11887450.html
Copyright © 2011-2022 走看看