草庐IT

EXCEPTION

全部标签

c# - 在 C# 中嵌套 2 个 try catch 语句是不好的做法吗?

下面的代码是不好的做法吗?try//TryOverallOperation{try//Trysection1ofoperation{}catch(exceptionex){//handleexceptioncode//throwtheexception}catch(exceptionex){//sendsoapexceptionbacktoSOAPclient.}我知道,从程序审查的角度来看,其他开发人员看到2次尝试直接嵌套时可能想知道为什么,但这完全是禁忌,还是现在已被接受?谢谢大家,我同意你们关于重构的所有意见,将为子功能创建一个单独的方法,该方法变得非常长。我对所有选择它的人印象

c# - 如何避免在 C# 中出现不可能的 bool 状态?

考虑这个函数,您可以将其视为真值表:publicFoodoSomething(boola,boolb){if(a&&b)returndoAB();elseif(a&&!b)returndoA();elseif(!a&&b)returndoB();elseif(!a&&!b)returndoNotANotB();elsethrownewException("Welldone,youdefeatedbooleanlogic!");}编译器坚持最后一个else子句。但从真值表的角度来看,这是不可能的状态。是的,它有效,是的,我可以接受它。但我想知道C#中是否有某种机制可以避免这种代码,或者我

c# - 在 C# 中,是否有任何我不应该使用的内置异常?

.NETFramework中是否定义了任何我不应该在我自己的代码中抛出的异常,或者这是不好的做法?我应该自己写吗? 最佳答案 您不应抛出任何因用户错误而由CLR自动抛出的异常。比如堆栈溢出异常空引用异常访问冲突异常等...原因是这样做会给调用您的API的人造成困惑。用户应该能够区分API主动抛出的异常和非主动抛出的异常(由CLR抛出)。原因是主动抛出的异常通常表示API中的已知状态。如果我调用一个API并且它抛出一个ArgumentException,我有一个合理的期望,即给定的对象处于良好状态。它认识到潜在的不良情况并积极应对。另

c# - 起订量参数 TargetParameterCountException : Parameter count mismatch Exception

以下是我的通用基础存储库界面publicinterfaceIRepository{IQueryableAllIncluding(paramsExpression>[]includeProperties);}我的实体publicclassSdk{publicSdk(){this.Identifier=Guid.NewGuid().ToString();}publicvirtualICollectionAccessibleResources{get;set;}publicstringIdentifier{get;set;}}下面是具体的repopublicinterfaceISdkRepo

c# - 如何从抛出异常的方法中通过 out/ref 参数获取值?

此代码输出“输出值”。classP{publicstaticvoidMain(){stringarg=null;try{Method(outarg);}catch{}Console.WriteLine(arg);}publicstaticvoidMethod(outstringarg){arg="outvalue";thrownewException();}}但是这个没有。classP{publicstaticvoidMain(){object[]args=newobject[1];MethodInfomi=typeof(P).GetMethod("Method");try{mi.In

c# - .net c# 异常处理在 64 位模式下失败

我的C#Web服务应用程序遇到问题。异常不再在某个时刻被处理。应用程序直接停止,没有任何进一步的消息/故障异常。这是发生了什么:问题:在一个方法的catch部分,我抛出一个新的异常包含有关异常(exception)情况的其他信息;底层异常来self应用程序的另一部分;异常的“堆栈”大约是20,但这似乎不是这里有一个问题;当使用VS2012开发服务器(我假设是32位)或32位模式的IIS时,抛出的异常被调用方法按预期拾取(最终导致我的网络服务出现FaultException)到目前为止我采取的步骤或其他可能有用的信息:我可以很容易地重现异常;它只是停止工作每次我运行我的代码时,都是完全相

c# - 在异步方法中显示错误消息的更好方法

事实上我们不能使用awaitcatch中的关键字block使得在WinRT中显示来自异步方法的错误消息非常尴尬,因为MessageDialogAPI是异步的。理想情况下,我希望能够这样写:privateasyncTaskDoSomethingAsync(){try{//Somecodethatcanthrowanexception...}catch(Exceptionex){vardialog=newMessageDialog("Somethingwentwrong!");awaitdialog.ShowAsync();}}但是我必须这样写:privateasyncTaskDoSome

c# - WinApp 窗体崩溃,没有任何错误或异常 .Net

我的WinAppForm程序有问题,该程序包含带有WebBrowser控件DLL(GeckoFX)的选项卡控件。我的应用程序在运行时关闭,没有任何异常或任何东西。它可能在几分钟后或最多10分钟后发生。在visualstudio中,我看到应用程序以代码0终止。任何东西。在program.cs中,我捕获了所有这些未处理的异常`//AddtheeventhandlerforhandlingUIthreadexceptionstotheevent.Application.ThreadException+=newSystem.Threading.ThreadExceptionEventHandl

c# - catch 中是否支持通用异常?

上面引用SO上的另一个问题+答案的block不包含适用于此处的正确答案!我有一个用于单元测试的方法。此方法的目的是确保一段代码(由委托(delegate)引用)将抛出特定异常。如果抛出该异常,则单元测试成功。如果没有抛出异常或抛出其他类型的异常,则单元测试将失败。//////CheckstomakesurethattheactionthrowsaexceptionoftypeTException.//////Thetypeofexceptionexpected.///Thecodetoexecutewhichisexpectedtogeneratetheexception.public

c# - Visual Studio 中缺少异常列表

这个问题在这里已经有了答案:VS2015IntelliSense:ExceptionsThrownnotPreviewed(2个答案)关闭5年前。我正在通过BobTabor在MicrosoftVirtualAcademy上的“C#绝对初学者基础”类(class)学习C#。.关于异常的类(class)我已经讲到一半了。Bob提到,将鼠标悬停在某个方法上时,弹出的IntelliSense窗口会列出该方法可能存在的潜在异常。但是,在我的VisualStudio版本(CommunityEdition2015)中,IntelliSense窗口更窄,并且不包含潜在异常列表。丢失的IntelliSe