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

    python异常处理

    1. 异常捕获
      • 使用except捕获异常时,不但捕获指定类型的错误,还会捕获到其子类异常
      • 可以跨越多层调用,即捕获到方法下调用的方法的异常
    2. 调用栈
      • 错误堆栈: 记录错误,并通过logging模块配置可被打印到日志文件中
      • 如果错误没有被捕获,它就会一直往上抛,最后被Python解释器捕获,打印一个错误信息,然后程序退出

    捕获已知异常

    s1 = input("请输入一个字符:")
    try:
        int(s1)
    except IndexError as e:
        print(e)
    except KeyError as e:
        print(e)
    except ValueError as e:
        print(e)
    

    捕获未知异常

    s1 = input("请输入一个字符:")
    try:
        int(s1)
    except Exception as e:
    		print(e)
    

    异常处理完整结构

    try:
        pass  	# 主代码块
    except KeyError as e:
        pass  	# 出现该异常时执行
    else:
        pass  	# 主代码块执行完,执行该块(若捕获到异常,则不执行该句)
    finally:
        pass  	# 无论异常与否,最终执行该块(不论try、except、else是否出现异常,该句都会执行)
    

    抛出异常

    s1 = input("请输入一个字符:")
    try:
        if len(s1) != 1:
            raise Exception(KeyError)   # 抛出KeyError异常
    except Exception as e:							# 捕获异常
        print(e)
    

    自定义异常

    class MyException(Exception):
        def __init__(self, code, msg):
            self.error_code = code
            self.error_msg = msg
    
        def __str__(self):
            return self.error_code, self.error_msg
    
    
    try:
        raise MyException(3000, '自定义异常')
    except MyException as e:
        print(e.error_code, e.error_msg)
    
  • 相关阅读:
    外包、构件和黑盒抽象等杂想
    C++类型转换小记(一)——C++转换操作符
    大学(一)
    【答】如何获取一个【备份路径】的信息?
    橘色超漂亮滑动二级导航菜单
    CSS自适应宽度按钮
    我们忽略的IE特效——一些特殊效果
    MSSQL 游标示例
    [存]超酷JS拖拽翻页效果
    漂亮的表格
  • 原文地址:https://www.cnblogs.com/ericness/p/12682837.html
Copyright © 2011-2022 走看看