Python 捕获pyinotify ProcessEvent中的错误
我无法从pyinotify捕获事件处理程序中的错误。 我正在尝试对写入后刚刚关闭的文件进行一些处理 以下是我的脚本的简化版本:Python 捕获pyinotify ProcessEvent中的错误,python,pyinotify,Python,Pyinotify,我无法从pyinotify捕获事件处理程序中的错误。 我正在尝试对写入后刚刚关闭的文件进行一些处理 以下是我的脚本的简化版本: import pyinotify import asyncore mask = pyinotify.IN_CLOSE_WRITE class EventHandler(pyinotify.ProcessEvent): def process_IN_CLOSE_WRITE(self, event): try: do_s
import pyinotify
import asyncore
mask = pyinotify.IN_CLOSE_WRITE
class EventHandler(pyinotify.ProcessEvent):
def process_IN_CLOSE_WRITE(self, event):
try:
do_stuff()
except BaseException as e:
print "Exception:" + str(e)
pass
if __name__ == "__main__":
try:
wm = pyinotify.WatchManager()
notifier = pyinotify.AsyncNotifier(wm, EventHandler())
wdd = wm.add_watch('/dir-to-watch/', mask, rec=True)
asyncore.loop()
except:
print "Unhandled error!"
print "Details:" + str(e)
print "Continuing anyway..."
pass
似乎当我得到一个错误或异常时,主循环中的exception或事件处理程序中的exception BaseException都没有捕捉到错误或异常
我收到如下开头的消息:
错误:未捕获的python异常,正在关闭通道
(:[Errno 2]没有这样的文件或目录:
所以我的问题是:如何捕获这些异常?我必须创建一个自定义异步通知程序:
class CustomAsyncNotifier(pyinotify.AsyncNotifier):
def handle_error(self):
print "Handling error!"
print "Guru meditiation #00000025.65045338"
print ""
print "Continuing anyway..."
然后更改我的代码以使用它:
if __name__ == "__main__":
wm = pyinotify.WatchManager()
notifier = CustomAsyncNotifier(wm, EventHandler())
wdd = wm.add_watch('/mnt/md0/proxies/', mask, rec=True)
asyncore.loop()
我必须创建一个自定义异步通知程序:
class CustomAsyncNotifier(pyinotify.AsyncNotifier):
def handle_error(self):
print "Handling error!"
print "Guru meditiation #00000025.65045338"
print ""
print "Continuing anyway..."
然后更改我的代码以使用它:
if __name__ == "__main__":
wm = pyinotify.WatchManager()
notifier = CustomAsyncNotifier(wm, EventHandler())
wdd = wm.add_watch('/mnt/md0/proxies/', mask, rec=True)
asyncore.loop()