跟踪Python中被忽略的异常?

跟踪Python中被忽略的异常?,python,exception,ignore,Python,Exception,Ignore,我的应用程序有一个自定义音频库,它本身使用BASS库 我在整个程序中创建和销毁低音流对象 当我的程序退出时,随机(我还没有弄清楚模式),我会在控制台上收到以下通知: Exception TypeError: "'NoneType' object is not callable" in <bound method stream.__del__ of <audio.audio_player.stream object at 0xaeda2f0>> ignored 基于此消息

我的应用程序有一个自定义音频库,它本身使用BASS库

我在整个程序中创建和销毁低音流对象

当我的程序退出时,随机(我还没有弄清楚模式),我会在控制台上收到以下通知:

Exception TypeError: "'NoneType' object is not callable" in <bound method stream.__del__ of <audio.audio_player.stream object at 0xaeda2f0>> ignored
基于此消息,我的第一个倾向是,在我的代码中的某个地方,我的stream类的一个实例被孤立(不再分配给变量),Python仍然试图在应用程序关闭时调用其del函数,但当它尝试时,对象已经消失了

该应用程序确实使用wxWidgets,因此涉及一些线程。事实上,没有给我一个实际的变量名,这让我相信我在上一段中所说的

我不确定到底什么代码与调试相关。这个消息看起来是无害的,但我不喜欢在最终产品代码中出现“忽略”异常的想法


任何人都有调试这个的技巧吗?

忽略异常的消息是因为在
\uuu del\uuu
方法中引发的所有异常都被忽略,以保持数据模型正常。以下是以下内容的相关部分:

警告:由于调用
\uuu del\uuu()
方法的不稳定情况,在执行过程中发生的异常将被忽略,并将警告打印到sys.stderr。此外,当调用
\uuu del\uuu()
以响应被删除的模块时(例如,当程序执行完成时),
\uu del\uuu()
方法引用的其他全局变量可能已经被删除或正在被拆除过程中(例如,导入机器关闭)。出于这个原因,
\uu del\uu()
方法应该尽可能少地维护外部不变量。从版本1.5开始,Python保证在删除其他全局变量之前,从其模块中删除名称以单个下划线开头的全局变量;如果不存在对此类全局变量的其他引用,这可能有助于确保导入的模块在调用
\uu del\uu()
方法时仍然可用


至于调试它,您可以先在
\uu del\uuu
方法中的代码周围放置
try
/
块,然后打印出有关程序发生时状态的更多信息。或者你可以考虑在<代码>中使用更少的方法,或者完全删除它。p> “wxWidgets”哦,当你不期望东西消失时,除非你做更多的工作。你是对的。异常是在
方法中引起的。我刚刚把电话包装在一个try/catch中,现在一切似乎都很好。
from pybass import *
from ctypes import pointer, c_float, c_long, c_ulong, c_buffer
import os.path, time, threading

# initialize the BASS engine
BASS_Init(-1, 44100, 0, 0, None)

class stream(object):
    """Represents a single audio stream"""
    def __init__(self, file):
        # check for file existence
        if (os.path.isfile(file) == False):
            raise ValueError("File %s not found." % file)
        # initialize a bass channel
        self.cAddress = BASS_StreamCreateFile(False, file, 0, 0, 0)
    def __del__(self):
        BASS_StreamFree(self.cAddress)
    def play(self):
        BASS_ChannelPlay(self.cAddress, True)
        while (self.playing == False):
            pass
    ..more code..