【发布时间】:2026-01-28 09:15:02
【问题描述】:
我正在尝试使用TagLibSharp 来获取音频文件的标签。我有一个 try-catch 块(如下所示)来捕获库引发的异常,但是,当我在 Visual Studio 2013 调试器下运行代码时,它会说这是第一次机会异常并且未处理。如何让 Visual Studio 2013 在调试器下运行时不停止?
TagLib.File file = null;
try
{
file = TagLib.File.Create(this.FilePath);
}
catch (Exception ex)
{
Debug.WriteLine("The following exception occurred: {0}", ex.Message);
}
我尝试了以下方法,但它们也没有奏效:
- 为
AppDomain.CurrentDomain.UnhandledException和App.Current.DispatcherUnhandledException添加了事件处理程序 - 在 Visual Studio 中进入异常...(通过按
CTRL+ALT+E)并取消选中Thrown下的所有框 - 在包含
TagLib类的 DLL 中添加 try-catch 块 - 清理和重建 Visual Studio 解决方案
我还应该注意,上面的代码是在一个单独的线程中执行的,而不是 WPF 的主 STA 线程,并且当我不在 Visual Studio 调试器下运行代码时,没有错误。还有Activator.CreateInstance 被调用来调用抛出异常的类。 TagLib 抛出的异常是CorruptFileException(即shown here),并且是在调用TagLib.Aiff.File.Read() 时(as shown here)。
按照要求,这是异常详细信息:
TagLib.CorruptFileException was unhandled by user code
HResult=-2146233088
Message=File does not begin with AIFF identifier
Source=TagLib
StackTrace:
at TagLib.Aiff.File.Read(Boolean read_tags, ReadStyle style, UInt32& aiff_size, Int64& tag_start, Int64& tag_end) in h:\Users\Nick\Documents\Visual Studio 2013\Projects\xxxxx\Source code\TagLib\Aiff\File.cs:line 407
at TagLib.Aiff.File..ctor(IFileAbstraction abstraction, ReadStyle propertiesStyle) in h:\Users\Nick\Documents\Visual Studio 2013\Projects\xxxxx\Source code\TagLib\Aiff\File.cs:line 166
InnerException:
【问题讨论】:
-
您是否尝试过将解决方案重建为干净的解决方案?
-
@Elias 是的,我有。我也将它添加到问题中。
-
能否请您在帖子中包含确切的错误消息?
-
你有多个App域吗?或者您知道您使用的库是否有非托管代码?三是在跨越应用程序域/非托管代码边界时中断的调试器选项。
-
如果一些非托管代码抛出异常是可以逃避捕获。我忘记了我必须设置的内容,但我遇到了这种情况。
标签: c# wpf multithreading visual-studio try-catch