python的异常捕捉



你可能会说既然有万能异常Exception,那么我直接用上面的这种形式就好了,其他异常可以忽略 你说的没错,但是应该分两种情况去看
1.如果你想要的效果是,无论出现什么异常,我们统一丢弃,或者使用同一段代码逻辑去处理他们,那么骚年,大胆的去做吧,只有一个Exception就足够了。 复制代码 s1 = 'hello' try: int(s1) except Exception,e: '丢弃或者执行其他逻辑' print(e) #如果你统一用Exception,没错,是可以捕捉所有异常,但意味着你在处理所有异常时都使用同一个逻辑去处理(这里说的逻辑即当前expect下面跟的代码块)2.如果你想要的效果是,对于不同的异常我们需要定制不同的处理逻辑,那就需要用到多分支了。 s1 = 'hello' try: int(s1) except IndexError as e: print(e) except KeyError as e: print(e) except ValueError as e: print(e)

一般情況的异常抛出:

raise Exception("this is an ex")

原文链接:https://www.cnblogs.com/MayDayTime/p/9296644.html

python打印详细的异常详细:使用trackback

import traceback
try:
    1/0
except Exception as e:
    traceback.print_exc() #这里是打印异常的用法
#print("异常:%s" % traceback.format_exc()) #两者是等价的,这里traceback.format_exc()可用作变量

Traceback (most recent call last):
File "C:/Users/qinfen23863/Desktop/test_lab.py", line 3, in <module>
1/0
ZeroDivisionError: division by zero

新战场:https://blog.csdn.net/Stephen___Qin
原文地址:https://www.cnblogs.com/Stephen-Qin/p/11013081.html