草庐IT

异常系列

全部标签

c# - Visual Studio 抛出 "wrong"编译时异常

为了在Mono中部署我的项目,我已将其降级为.Net4.0,就像我对我引用的库(CommonUtils)所做的那样。但是,我仍然遇到以下异常:Theprimaryreference"CommonUtils"couldnotberesolvedbecauseithasanindirectdependencyontheassembly"Newtonsoft.Json,Version=4.5.0.0,Culture=neutral,PublicKeyToken=30ad4fe6b2a6aeed"whichwasbuiltagainstthe".NETFramework,Version=v4.

c# - XDocument.Load(XmlReader) 可能的异常

调用XDocument.Load(XmlReader)时可能抛出哪些异常?当文档未能提供关键信息时,很难遵循最佳实践(即避免使用通用的trycatchblock)。预先感谢您的帮助。 最佳答案 MSDN说:LINQtoXML的加载功能建立在XmlReader之上。因此,您可能会捕获XmlReader抛出的任何异常。创建读取和解析文档的重载方法和XmlReader方法。http://msdn.microsoft.com/en-us/library/756wd7zs.aspxArgumentNullException和SecurityE

c# - 异常显示开发人员的路径而不是服务器

当任何ASP.NET项目(可能是任何.net应用程序)发生异常时,堆栈跟踪将显示开发人员计算机上的路径,即使在生产中也是如此。怎么改?引擎盖下发生了什么? 最佳答案 此信息存储在源代码编译期间生成的.PDB文件中。它们包含调试信息。但通常人们不会在将应用程序投入生产之前在他们的机器上编译应用程序。他们使用持续集成并构建专用于此目的的服务器。现在,如果您想关闭调试细节,您可以在项目的属性中配置详细级别和调试信息。 关于c#-异常显示开发人员的路径而不是服务器,我们在StackOverflo

c# - 有没有一种简单的方法可以返回异常的任务?

我的理解是returnTask.FromResult(foo)是以下内容的简单简写:vartcs=newTaskCompletionSource();tcs.SetResult(foo);returntcs.Task;返回异常状态的任务是否有一些等价物?vartcs=newTaskCompletionSource();tcs.SetException(newNotSupportedException());//orwhateverisappropriatereturntcs.Task;我没有看到类似Task.FromException的内容。还是只抛出异常而不返回任务更合适?

c# - C# 中的(普通)throw 语句会导致异常吗?

问题:C#中的普通throw语句本身是否会导致新的异常?请注意,我问这个问题是出于好奇,而不是因为我有任何实际或现实世界的情况会很重要。另请注意,我的直觉和经验告诉我答案是“否”,但我希望以某种方式验证该答案(请参阅到目前为止我尝试过的资源)。下面是一些示例代码来说明我的问题:try{intx=0,y=1/x;}catch(ExceptionouterException){try{throw;}catch(ExceptioninnerException){//Q:DoesthisAsserteverfail??System.Diagnostics.Debug.Assert(outerE

c# - 查找 VS 输出窗口中显示的异常源

这个问题在这里已经有了答案:C#:"Afirstchanceexceptionoftype'System.InvalidOperationException'"(3个答案)关闭6年前。在VS2013中运行我的应用程序时出现异常:Afirstchanceexceptionoftype'System.InvalidOperationException'occurredinmscorlib.dll和Afirstchanceexceptionoftype'System.InvalidOperationException'occurredinmscorlib.dll这个异常在任何地方都会被捕获,

c# - 处理服务启动时的异常

我正在编写一系列Windows服务。如果在启动期间抛出错误(在OnStart()方法中),我希望它们失败。我原以为只要在OnStart()中抛出一个错误就可以做到这一点,但我发现它“开始”并向我显示一条消息,指出“服务已启动,但处于非事件状态。这个对吗?”(释义)。我该如何处理错误,使其实际上无法启动服务? 最佳答案 如果您主要希望“服务”窗口报告出现错误,根据我的尝试(Windows7上的.NET3.5),唯一的方法是设置退出代码。我建议将其设置为13816,因为这会导致消息“发生未知错误”。参见thewindowserrorco

c# - 我想等待抛出 AggregateException,而不仅仅是第一个异常

在等待错误任务(设置了异常的任务)时,await将重新抛出存储的异常。如果存储的异常是AggregateException,它将重新抛出第一个并丢弃其余的。我们如何使用await,同时抛出原始的AggregateException,这样我们才不会不小心丢失错误信息?请注意,当然可以为此考虑hacky解决方案(例如,围绕awaittry-catch,然后调用Task.Wait)。我真的很想找到一个干净的解决方案。此处的最佳做法是什么?我想过使用自定义等待程序,但内置的TaskAwaiter包含许多我不确定如何完全重现的魔法。它调用TPL类型的内部API。我也不想重现所有这些。如果您想使用

c# - 在 try catch block 中抛出异常

try{if(isFileDownloaded)//dostuffelsethrownewCustomException()}catch(Exceptione){//somethingwentwrongtosavetheerrortolog}finally{//releaseresources}我的问题是catch会捕获tryblock中抛出的ApplicationException吗?是编码风格不好吗?是不是应该换一种写法? 最佳答案 catch将捕获您的异常(以及任何其他发生的异常)。话虽如此,我尽量避免编写这样的代码。就我个人

c# - 'System.Data.Entity.Internal.AppConfig' 的类型初始值设定项在子网站上抛出异常

我有2个网站,一个是另一个的子目录,但它是一个应用程序例如:/root&/root/Services他们都使用EntityFramework6.x但子网站正在抛出ThetypeinitializerforSystem.Data.Entity.Internal.AppConfig'throwanexception因为它似乎看到了许多条目由于嵌套的web.config而用于相同的EF数据库提供程序有没有办法清除提供程序集合,这样我就不会收到此错误?我试过没有效果。如果我注释掉providers部分就可以了但我不想这样做,因为并非每个环境都会有嵌套网站。并且NuGet倾向于将其放回原处。我可