一 简单 try except
简单,但是无法捕获完整异常信息 不利于拍错
try:
a=1
except Exception as e:
print (e)
import traceback
import sys
try:
a = 1
except:
traceback.print_exc()
#sys.exc_info()
原文:https://www.jb51.net/article/149106.htm
二 详细实例 traceback
推荐阅读:https://www.cnblogs.com/oddcat/articles/11362961.html
#!/usr/bin/env python3
import traceback
import sys
def func():
raise Exception("-- func exception --")
def main():
try:
func()
except Exception as e:
exc_type, exc_value, exc_obj = sys.exc_info()
print("exception_type: \t%s,\nexception_value: \t%s,\nexception_object: \t%s,\n" \
%(exc_type,exc_value,exc_obj))
if __name__ == "__main__":
main()
三 主动异常 raise
原文:https://www.cnblogs.com/wss-1998/p/11622447.html
raise表示会抛出异常那么就是说raise会向python的解释器一个响应告诉解释器他的后面是一个异常让我们的程序中断
一般是和自定义的异常连用。
def main():
try :
s=input("请输入字符串:")
if len(s)<3:
raise CustomError(object1,object2)
except CustomError as result:
print("使用了异常类产生的对象result")
else :
print("没有异常产生")
main()