python Eclipse - 如何在警告中打破/暂停?

时间:2014-02-27 16:21:01

标签: python eclipse debugging pydev

我发现这可以打破异常。

Break on exception in pydev

然而,我想要的是打破警告。这是我得到的警告,如果报告此警告或其他警告在此时断开,则会发出警告。

RuntimeWarning: invalid value encountered in double_scalars  yv = Nv(v, U*r)/Nv(v, U*r_)

提前致谢。

1 个答案:

答案 0 :(得分:1)

与一个与多个流控制机制相关联的异常不同,警告只是输出到控制台的文本 - 更确切地说,是stderr

打破警告的可能方法是拦截对stderr的调用:

class MyStderr(object):
    def __init__(self, original_stderr):
        self.original_stderr= original_stderr
    def my_break(self):
        import pdb; pdb.set_trace()
    def write(self,*args, **kwargs):
        self.my_break()
        #...
    def writelines(self,*args, **kwargs):
        self.my_break()
        #...
    #...
import sys
sys.stderr= MyStderr(sys.stderr)

这应该启动交互式pdb调试器。