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

    异常处理

    捕捉异常

    • 语法错误无法通过try检测,就像函数一样
    try:
        1/0
    except Exception as e:		# Exception是万能异常,因为他是所有报错的超类
        print(e)
    finally:
        print('无论报不报错都运行')	# 没用,以前是用来关闭文件的,但是现在有with open
    

    raise

    • 主动抛出异常
    raise KeyboardInterrupt('中断捕捉')
    

    assert

    • 历史遗留问题(以前没有Pycharm智能报错)

    处理万能异常

    • 之前只是捕捉异常,但是并不是跟踪异常信息,其实很不方便排错
    • 使用traceback,获取异常信息
    import traceback
    try:
        raise  Exception("asasasas")
    except Exception as e:
        traceback.print_exc()
        print(e)
    print("over")
    

    异常跟踪

    traceback跟踪异常

    import traceback
    
    try:  
        1/0  
    except Exception as e:  
        traceback.print_exc()
    

    输入的结果为:

    Traceback (most recent call last):
      File"/Users/zhouwanghua/Code/dot/__init__.py", line , in <module>
         1 / 0
    ZeroDivisionError: division by zero
    

    traceback.print_exc()跟traceback.format_exc()区别:

    • format_exc()返回字符串
    • print_exc()则直接给打印出来

  • 相关阅读:
    重定向管道
    系统安全
    Linux启动流程
    压缩解压
    Vim
    ssh
    sudo
    Raid
    rsync
    quota
  • 原文地址:https://www.cnblogs.com/lucky75/p/11066833.html
Copyright © 2011-2022 走看看