zoukankan      html  css  js  c++  java
  • 60.基础语法-异常的处理

    报错类型

    • AssertError 断言语句(assert)失败
    • AttributeError 尝试访问未知的对象属性
    • EOFError 用户输入文件末尾标志EOF(Ctrl+d)
    • FloatingPointError 浮点计算错误
    • GeneratorExit generator.close()方法被调用的时候
    • ImportError 导入模块失败的时候
    • IndexError 索引超出序列的范围
    • KeyError 字典中查找一个不存在的关键字
    • KeyboardInterrupt 用户输入中断键(Ctrl+c)
    • MemoryError 内存溢出(可通过删除对象释放内存)
    • NameError 尝试访问一个不存在的变量
    • NotImplementedError 尚未实现的方法
    • OSError 操作系统产生的异常(例如打开一个不存在的文件)
    • OverflowError 数值运算超出最大限制
    • ReferenceError 弱引用(weak reference)试图访问一个已经被垃圾回收机制回收了的对象
    • RuntimeError 一般的运行时错误
    • StopIteration 迭代器没有更多的值
    • SyntaxError Python的语法错误
    • IndentationError 缩进错误
    • TabError Tab和空格混合使用
    • SystemError Python编译器系统错误
    • SystemExit Python编译器进程被关闭
    • TypeError 不同类型间的无效操作
    • UnboundLocalError 访问一个未初始化的本地变量(NameError的子类)
    • UnicodeError Unicode相关的错误(ValueError的子类)
    • UnicodeEncodeError Unicode编码时的错误(UnicodeError的子类)
    • UnicodeDecodeError Unicode解码时的错误(UnicodeError的子类)
    • UnicodeTranslateError Unicode转换时的错误(UnicodeError的子类)
    • ValueError 传入无效的参数
    • ZeroDivisionError 除数为零

    Python的异常处理模块语法:

    try:
        pass    #一段可能出现错误的代码
    except error1:
        pass    #出现error1的异常处理代码
    except error2:
        pass    #出现error2的异常处理代码
    except (error3, error4, error5):
        pass    #出现error3,error4,error5的异常处理代码
    except:
        pass    #出现所有异常的处理代码
    else:
        pass    #没出现异常,将执行此代码
    finally:
        pass    #无论有没有异常,都将执行此代码
    
    try:
        #raise NameError               #raise + 异常类型 可以手动引发一个相应类型的异常
        a = int(input("请输入一个数字:"))
        b = 100/a
        print("100除以{}的结果为{}".format(a, b))
        
    except ValueError as e:
        print("只能输入数字")
        print(e)
    
    except ZeroDivisionError as e:
        print("除数不能为0")
        print(e)
    
    except (NameError, SyntaxError):
        print("变量用错 或 语法有错误")
    
    except Exception as e:             #Exception是所有报警类的父类,所以它能够接住一切报警,要把它写到最后except里
        print("就是出错了,出了什么错我也不知道了") 
    
    else:
        print("哈哈没有错误,我被执行了")
    
    finally:
        print("出没出错我都执行了")
    

    自定义报警

    • 相当于自定义一个类,此类的父类必须是上面报警中的一个类或者"Exception"
    • class 异常名称(父类名):
      • 发生异常的异常代码
      • 发生异常后的问题提示
      • 发生异常的行数(位置)
  • 相关阅读:
    浅析c#中new、override、virtual关键字的区别
    数据解析1113
    Silverlight中xaml之间的跳转方案之一
    silverlight读取client文件的完整路径
    (Transfered)WPF Tutorial:Beginning
    数据解析1112
    邮件发送1
    TortoiseSVN Settings Subversion
    德信无线10Q4净利润同比增进187%
    欧盟中止对我数据卡双反调查
  • 原文地址:https://www.cnblogs.com/TK-tank/p/12346469.html
Copyright © 2011-2022 走看看