Python 异常排序

标签 python python-2.x

只是好奇,为什么会出现下面的代码

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/

相关文章:

python - 导入错误:无法导入站点模块及其依赖项:没有名为站点的模块

python - 执行队列中的函数

python - 如何将 SSML 合并到 Python 中

python - 计算CSV文件中特定列中的重复值并将该值返回到另一列(python2)

python - postgresql 数据库查询后 python 脚本输出中存在未知空格

Python Firebase 替换自动生成的 Key

python - Python 中非本地语句的语法错误

json - 强制 Python json 模块使用 ASCII

python - 为什么 Python 2 认为这些字节是麦克风表情符号而 Python 3 却不这样认为?

python - 如何将Python循环输出放入列表中