只是好奇,为什么会出现下面的代码
import sys
class F(Exception):
sys.stderr.write('Inside exception\n')
sys.stderr.flush()
pass
sys.stderr.write('Before Exception\n')
sys.stderr.flush()
try:
raise F
except F:
pass
输出:
Inside exception
Before Exception
而不是:
Before exception
Inside Exception
最佳答案
你在类中打印,而不是它的初始化 block 。尝试运行这个
import sys
class F(Exception):
sys.stderr.write('Inside exception\n')
sys.stderr.flush()
pass
一个人。即,当您调用 raise F
时它没有运行。试试这个吧
import sys
class F(Exception):
def __init__():
sys.stderr.write('Inside exception\n')
sys.stderr.flush()
raise new F()
关于Python 异常排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6414390/