我想弄清楚一种方法来捕获由FileSystemWatcher
引发的异常,这些似乎是随机发生的,因为我从我的软件的崩溃报告日志中已经注意到。这次事故并不频繁,因为它仅发生在上个月的两次,但令人讨厌,我很想修复它。有问题的例外似乎与其路径中具有无效字符的文件有关。我不确定情况是否如此,或者提出的事件是否有问题。到目前为止,我所知道的是异常的堆栈跟踪:捕获由FileSystemWatcher侦听器线程抛出的异常
Top-level Exception
Type: System.ArgumentException
Message: Illegal characters in path.
Source: mscorlib
Stack Trace:
at System.IO.Path.GetFileName(String path)
at System.IO.FileSystemWatcher.MatchPattern(String relativePath)
at System.IO.FileSystemWatcher.NotifyFileSystemEventArgs(Int32 action, String name)
at System.IO.FileSystemWatcher.CompletionStatusChanged(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* overlappedPointer)
at System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* pOVERLAP)
从堆栈跟踪很显然,该异常升高回调事件到我的应用程序之前,听者的执行范围内提出。我想知道是否有无意中发现这种异常并继续执行,而忽视了这一事件。
我试图封装我守望回调的身体与try/catch
块,但似乎从来没有执行到达回调和它真的令人沮丧,因为我现在开始认为它是在.NET Framework中的错误
是它在unhandledexception引发的事件? –
完整路径不能包含以下字符:“< > | –
@SimonWhitehead是的,我就是这么做的。 –