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

    异常种类
    AttributeError  试图访问一个对象没有的树形,比如foo.x,但是foo没有属性x
    IOError  输入/输出异常;基本上是无法打开文件
    ImportError  无法引入模块或包;基本上是路径问题或名称错误
    IndentationError  语法错误(的子类) ;代码没有正确对齐
    IndexError  下标索引超出序列边界,比如当x只有三个元素,却试图访问x[5]
    KeyError  试图访问字典里不存在的键
    KeyboardInterrupt  Ctrl+C被按下
    NameError  使用一个还未被赋予对象的变量
    SyntaxError  Python代码非法,代码不能编译(个人认为这是语法错误,写错了)
    TypeError  传入对象类型与要求的不符合
    UnboundLocalError  试图访问一个还未被设置的局部变量,基本上是由于另有一个同名的全局变量,导致你以为正在访问它
    ValueError  传入一个调用者不期望的值,即使值的类型是正确的
    
    
    语法:
    try: 
        被检测的代码块
    except 异常类型:
        try中一旦检测到异常,就执行这个位置的逻辑  
    
    
    写程序时需要考虑到try代码块中可能出现的任意异常,可以这样写:
    s1 = 'hello'
    try:
        int(s1)
    except IndexError,e:
        print(e)
    except KeyError,e:
        print(e)
    except ValueError,e:
        print(e) 
    
    
    万能异常 在python的异常中,有一个万能异常:Exception,他可以捕获任意异常,即:
    s1 = 'hello'
    try:
        int(s1)
    except Exception,e:
        print(e) 
    
        
        
    主动触发异常
    try:
        raise AttributeError('错啦错啦')
    except AttributeError as e:
        print(e)
    
    
    自定义异常
    class EgonException(BaseException):
        def __init__(self,msg):
            self.msg = msg
            
    try:
        raise EgonException('出异常啦')
    except EgonException as e:
        print(e)
    
        
  • 相关阅读:
    25 Groovy 相关资料
    24 使用Maven 或 Gradle构建groovy
    UVA
    UVA
    UVA
    UVA
    UVA
    【JZOJ4235】序列【数论,数学】
    【JZOJ4235】序列【数论,数学】
    【JZOJ5230】队伍统计【状压DP】
  • 原文地址:https://www.cnblogs.com/l10n/p/13932950.html
Copyright © 2011-2022 走看看