异常处理

异常处理

捕捉异常

  • 语法错误无法通过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()则直接给打印出来

原文地址:https://www.cnblogs.com/lucky75/p/11066833.html