草庐IT

C++异常安全

全部标签

c# - 如何断言 C# 异步方法在单元测试中引发异常?

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:HowdoItestanasyncmethodwithNUnit,eventuallywithanotherframework?我想知道的是如何在C#单元测试中断言异步方法抛出异常?我能够在VisualStudio2012中使用Microsoft.VisualStudio.TestTools.UnitTesting编写异步单元测试,但还没有弄清楚如何测试异常。我知道xUnit.net也以这种方式支持异步测试方法,虽然我还没有尝试过那个框架。为了说明我的意思,下面的代码定义了被测系统:usingSystem;u

c# - 可空类型 GetType() 抛出异常

我刚刚从一个同事那里得到了这个让我发疯的测验。对于这段代码:varx=newInt32?();stringtext=x.ToString();//NoexceptionConsole.WriteLine(text);Typetype=x.GetType();//Bang!为什么第一部分.ToString()工作时没有抛出异常,然后调用GetType()抛出NullReferenceException? 最佳答案 ToString是overriddeninNullable,因此调用时不涉及装箱。GetType()不是虚方法,因此不会(

c# - 为什么 DateTime.Now 需要线程安全?

我正在阅读Joe的AlbahariC#threadingtutorial:作者解释了为什么DateTime.Now需要线程安全:Wrappingaccesstoanobjectaroundacustomlockworksonlyifallconcurrentthreadsareawareof—anduse—thelock.Thismaynotbethecaseiftheobjectiswidelyscoped.Theworstcaseiswithstaticmembersinapublictype.Forinstance,imagineifthestaticpropertyontheD

c# - 转换为基类,并调用其虚方法导致计算器异常

考虑这段代码:publicclassPerson{publicvirtualvoidUpdateLastLogin(){//businessoflastloginhere}}publicclassStudent:Person{publicoverridevoidUpdateLastLogin(){//loggingsomethingspecifictoperson((Person)this).UpdatelastLogin();}}为什么上面的代码会抛出STACKOVERFLOW异常?但这不是:publicclassPerson{publicvirtualvoidUpdateLastL

c# - 异常信息 : System. Reflection.TargetInvocationException

我正在开发WPF应用程序,但我仅在运行时在单个设备上收到此错误。ExceptionInfo:System.Reflection.TargetInvocationException我的问题:任何可能导致此错误的线索?知道如何在Release模式下调试应用程序吗?ExceptionInfo:System.Reflection.TargetInvocationExceptionStack:atSystem.RuntimeMethodHandle.InvokeMethod(System.Object,System.Object[],System.Signature,Boolean)atSyst

c# - .net 异常捕获 block

以下catchblock之间有什么区别?try{...}catch{...}和try{...}catch(Exception){...}我意识到,在任何一种情况下,异常实例都不可用,但有什么我可以用一个实例做而另一个实例做不到的事情吗? 最佳答案 它们几乎相同。来自C#语言规范,第8.10节:SomeprogramminglanguagesmaysupportexceptionsthatarenotrepresentableasanobjectderivedfromSystem.Exception,althoughsuchexcep

c# - 使用ObserveOn时如何处理OnNext中的异常?

当我使用ObserveOn(Scheduler.ThreadPool)时观察者在OnNext中抛出错误时,我的应用程序终止。我发现处理这个问题的唯一方法是使用下面的自定义扩展方法(除了确保OnNext永远不会抛出异常)。然后确保每个ObserveOn后跟一个ExceptionToError。publicstaticIObservableExceptionToError(thisIObservablesource){varsub=newSubject();source.Subscribe(i=>{try{sub.OnNext(i);}catch(Exceptionerr){sub.OnE

C# 单例线程安全

我有一个类似这样的单例类publicclassSingleton{privatestaticSingletonm_instance;privateTimerm_timer;privatestaticListm_cacheObjects;privateSingleton(){m_cacheObjects=newList();m_timer=newTimer(MyTimerCallBack,null,TimeSpan.FromSeconds(60),TimeSpan.FromSeconds(60));}publicstaticSingletonInstance{get{if(m_insta

c# - 系统参数异常 : Complex DataBinding accepts as a data source either an IList or an IListSource

我正在使用下面的C#代码来填充WinFormsListBox。但是我想隐藏所有系统文件夹。例如$RecyclingBin。但它给了我以下错误。System.ArgumentException:ComplexDataBindingacceptsasadatasourceeitheranIListoranIListSource.作为LINQ的新手,这让我很困惑。谁能告诉我哪里出错了?string[]dirs=Directory.GetDirectories(@"c:\");vardir=fromdindirswhere!d.StartsWith("$")selectd;listBox.Da

c# - 将异常冒泡到堆栈顶部是否可以?

让异常冒泡到堆栈顶部而不是在每个方法中捕获它是否可以?..我们应该在任何情况下都这样做吗?..这种方法是否存在任何细微的问题或副作用(例如丢失异常细节、堆栈跟踪或内部异常细节等)?虽然我的问题很笼统,但我目前的情况是这样的:我正在将现有的WSE3Web服务移动到WCF,因此y客户端是WSE3客户端。我添加了一个行为,以便在WCF服务中发生FaultException时,它会被传送到客户端。当OperationContract方法出现异常时,我会在客户端收到异常消息,没有任何问题。但每当它出现在OperationContract以外的方法中时,我都会以某种方式遇到与安全相关的问题。我无法