草庐IT

业务异常

全部标签

c# - 我不应该捕获哪些异常?

我有一个运行长批处理的应用程序,其中可能会抛出许多异常。如果在批处理中的一个项目期间抛出非关键异常,我想简单地记录它并继续,这样我们可以稍后解决问题,同时让其他批处理项目继续。一些异常,例如OutOfMemoryException,对整个应用程序来说是毁灭性的,我想重新抛出这些异常,以便它们冒泡到全局异常处理程序,该处理程序将记录错误并停止应用程序。所以我的问题是,是否有一个相当短的关键异常列表,我可以在我的下层异常处理程序中重新抛出这些异常,同时抑制(在记录之后)其他所有内容?谢谢!编辑:详细说明一下,这是我的程序的基本结构foreach(variteminlongItemList)

c# - 无法在 .NET 中捕获的异常列表

在.NET中不能捕获的异常列表是什么?或者我在哪里可以找到这样的列表? 最佳答案 唯一不能直接捕获的异常是(抛出的框架)StackOverflowException.这在逻辑上是有道理的,因为此时堆栈中没有空间来处理异常。来自文档:Startingwiththe.NETFrameworkversion2.0,aStackOverflowExceptionobjectcannotbecaughtbyatry-catchblockandthecorrespondingprocessisterminatedbydefault.Thread

c# - LINQ 表达式中的异常处理

我有一个简单的LINQ表达式,例如:newDocs=(fromdocinallDocswhereGetDocument(doc.Key)!=nullselectdoc).ToList();问题是,GetDocument()可能会抛出异常。如何忽略所有GetDocument(doc.Key)==null或抛出异常的文档元素?旧学校的相同代码如下:foreach(vardocinallDocs){try{if(GetDocument(doc.Key)!=null)newDocs.Add(doc);}catch(Exception){//Donothing...}}

c# - wcf服务中的线程中止异常

我有一个托管在IIS6.0上的WCF服务(内置于.NETFramework3.5中)。代码流程如下客户端(这是另一个Web服务)调用WCF服务WCF服务调用一个线程在后台进行处理并立即响应被调用者。后台线程在完成所有处理后,回调线程。这个调用基本上是一个HTTPs请求,因为客户端是一个网络服务。我正在对我的WCF服务进行负载测试以定义阈值。观察结果如下:1分钟内向WCF服务发出的1024个请求的大约3次迭代成功通过。完成每次迭代所需的时间约为25-30分钟。然而,从第4次迭代开始,可以看到批量失败。大约50%的请求失败,但出现以下异常。Exception-Threadwasbeinga

c# - 与 Contract.Requires<T> 相比抛出异常?

我想知道我是应该抛出异常还是调用Contract.Requires例如:publicstaticvoidFunction(Stringstr){if(str==null)thrownewArgumentNullException("str","Inputstringcannotbenull.");//...}对比publicstaticvoidFunction(Stringstr){Contract.Requires(str!=null,"Inputstringcannotbenull.");//...}自Contract.Requires不需要CONTRACTS_FULL符号我也可以

c# - DatePicker 在更改月份时抛出异常

更改DatePicker的月份会引发此异常:System.Windows.Automation.ElementNotAvailableException:'Elementdoesnotexistoritisvirtualized;useVirtualizedItemPatternifitissupported.'堆栈跟踪:atMS.Internal.Automation.ElementUtil.Invoke(AutomationPeerpeer,DispatcherOperationCallbackwork,Objectarg)atMS.Internal.Automation.Elem

c# - VS2013 似乎没有正确附加 - 调试器已附加但未配置为调试此未处理的异常

在编写控制台应用程序时,我使用的是SAPDLL。尝试添加SAP对象时出现以下错误:Adebuggerisattachedtobutnotconfiguredtodebugthisunhandledexception.Todebugthisexceptiondetachthecurrentdebugger.代码:SAPbobsCOM.GeneralServiceoGeneralService=oCmpSrv.GetGeneralService("WEPPAGE");SAPbobsCOM.GeneralDataoGeneralData=(SAPbobsCOM.GeneralData)oGe

c# - 没有堆栈跟踪的异常 - 怎么样?

我们有一项服务可以在应用域级别记录未处理的异常(通过Log4net)。我们记录了:2014-01-2816:49:19,636ERROR[49]FeedWrapperService-unhandledSystem.NullReferenceException:Objectreferencenotsettoaninstanceofanobject.此异常没有堆栈跟踪。如果不对异常对象做一些疯狂的事情怎么可能呢?我们的处理代码:AppDomain.CurrentDomain.UnhandledException+=LogAnyExceptions;privatevoidLogAnyExce

c# - 在可移植类库中实现自定义异常

在为.NET设计自定义异常时,MSDN提供了theseguidelines.特别是,指南指出自定义异常:应该是可序列化的,即实现ISerializable并用[Serializable]属性装饰,并且应该实现(反)序列化构造函数,即protectedCustomException(SerializationInfoinfo,StreamingContextcontext)。但是,在PortableClassLibrarySerializableAttribute、ISerializable和SerializationInfo均不受支持。我应该如何在同时针对.NETFramework和一

c# - 业务逻辑类命名

我有一个业务层,其中包含一些业务对象/POCO/实体/等等。我还有一些用于数据访问的存储库。到目前为止,我一直直接从我的UI层访问存储库。我现在实际上需要一些不是直接CRUD的类,所以我将创建一些业务逻辑类来执行逻辑和CRUD,并且存储库不会被访问不再使用UI(可能应该从一开始就完成)。我应该如何称呼这些类?我唯一能想到的是服务类,但我在这个应用程序中有实际的WCF服务,所以这会让人感到困惑。WCF服务也将使用这些类,因此让服务使用服务类似乎很奇怪且令人困惑。 最佳答案 我也使用“服务”命名约定。诚然,“服务”已成为行业中一个非常重