【发布时间】:2021-07-27 02:25:50
【问题描述】:
当您在编码时遇到如下错误,您会在尝试错误的代码行收到错误。
File.ReadAllText("nonexistent_file.txt");
作为参考,在 Visual Studio 社区中,这看起来像这样: Normal unhandled exception
但是,我正在设计一个 NuGet 包(如 DLL),如果用户尝试将无效字符串传递给函数,有时我想抛出异常,如 ArgumentException。但是,当我将其编码到 NuGet 中,然后继续使用无效字符串时,异常会将我带到我的 NuGet 中我抛出异常的代码行,而不是我尝试错误的代码行。
我很好奇为什么 Visual Studio 将我带到 NuGet 代码中的函数,而不是我进行无效调用的地方。知道我在这里做错了什么吗?
【问题讨论】:
-
嗯,也许可以试试DebuggerStepThrough?或者可能是DebuggerHidden?
-
你的机器上有你的库的源代码。所以调试器可以毫无问题地显示抛出位置。对于使用 Nuget 检索该库的任何人来说,通常情况并非如此,调试器除了遍历堆栈以查找它确实具有源代码的语句外,什么也做不了。因此,他们将在呼叫位置看到异常。功能,而不是错误。
标签: c# visual-studio exception nuget