异常处理

把将会会产生的错误,提早在代码里开展捕获(检测)

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)
本文版权归qu快排seo www.sEoguRuBlog.com 所有,如有转发请注明来出,竞价开户托管,seo优化请联系QQ√61910465