草庐IT

Try-Except-Finally

全部标签

c# - 通过 try 中的 lock 锁定资源。这是错的吗?

在tryblock中使用lock有什么问题吗?我记得在某处读到我们应该始终尝试在tryblock中放置最少量的代码,并在内部使用try-finallyblock锁定自身,你们看到这里有什么问题了吗?我需要处理这个锁中的代码这一事实block可以抛出异常try{lock(syncblk){//dosomeprocessing}}catch(Exceptione){//dosomethingwithexception} 最佳答案 Ineedtodealwiththefactthatthecodewithinthatlockblockca

c# - C# 中 'try' 的性能成本

我知道异常会降低性能,而且尝试和避免异常通常比在所有事情上都放置一个大的try/catch更有效——但是tryblock本身呢?仅仅声明一个try/catch的成本是多少,即使它从不抛出异常? 最佳答案 try的性能开销很小。异常处理的主要成本是获取堆栈跟踪和其他元数据,而在您实际必须抛出异常之前,这些成本是不会支付的。但这会因语言和实现而异。为什么不用C#编写一个简单的循环并自己计时? 关于c#-C#中'try'的性能成本,我们在StackOverflow上找到一个类似的问题:

c# - Try..Catch block 总是很昂贵?

这个问题在这里已经有了答案:关闭12年前。PossibleDuplicate:Dotry/catchblockshurtperformancewhenexceptionsarenotthrown?大家好,只是一个关于try..catchblock的快速问题。我听说它们使用起来很昂贵,不应该用作程序流程的一部分。但是,为了验证电子邮件地址,我使用了以下代码。try{MailAddresscheckEmail=newMailAddress(testEmail);returntrue;}catch{returnfalse;}由于事先进行了验证,所以我不会捕获很多异常,除非是试图绕过验证。我的

c# - 嵌套的 Try 和 Catch block

关闭。这个问题需要detailsorclarity.它目前不接受答案。想改进这个问题吗?通过editingthispost添加细节并澄清问题.关闭9年前。Improvethisquestion我在SharePoint的自定义C#代码中嵌套了try-catchblock。当内部tryblock中的代码抛出异常时,我只想在一个catchblock(内部block)中执行代码。try{//dosomethingtry{//dosomethingifexceptionisthrown,don'tgotoparentcatch}catch(Exceptionex){...}}catch(Exce

c# - 我在哪里放置 try/catch with "using"语句?

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:try/catch+using,rightsyntax我想try/catch以下内容://writetofileusing(StreamWritersw=File.AppendText(filePath)){sw.WriteLine(message);}我是将try/catchblock放在using语句内,还是围绕它,或两者兼而有之?

c# - C# 中嵌套的 try-finally

为什么行不是“Console.WriteLine("asdf");”执行?其他都是。不应该也是因为我们不能跳出finally作用域吗?staticboolFunc(){try{try{}finally{try{thrownewApplicationException();}finally{Console.WriteLine("asd");}Console.WriteLine("asdf");}}finally{Console.WriteLine("asd");}} 最佳答案 Finallyblock仅保证(至少大部分保证,请参阅下面

c# - 为什么我不能只写一个没有 catch 或 finally 的 try?

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭5年前。Improvethisquestion有时我这样做,我也看到其他人也这样做:VB:TryDontWannaCatchIt()CatchEndTryC#:try{DontWannaCatchIt();}catch{}我知道我应该捕捉每一个重要的异常我期待并对此采取一些措施,但有时它并不重要-还是我做错了什么?tryblock的这种用法是否不正确,并且要求至少有一个catch或finallyblock表明了这一点?更新:现在我明白

c# - 如何在c#中使用列表中的Except方法

我已经创建了一个两个int类型的列表,并使用except方法将仅在list1中的项目分配给list1。例如Listlist1=newList();Listlist2=newList();list1={1,2,3,4,5,6}//getitemsfromthedatabaselist2={3,5,6,7,8}//getitemsfromthedatabaselist1=list1.Except(list2);//givesmeanerror.请给我建议。什么是正确的做法。 最佳答案 Except方法返回IEnumerable,需要将结

c# - 为什么我可以将 sbyte 与所有其他数字类型*except* ulong 进行比较?

您可以在sbyte和byte、int、uint、short、ushort、long、double和float之间进行>、我的大脑在爆炸。谁能解释为什么sbyte可以与uint相比,但不是ulong?publicboolsbyte_ulong_compare(sbytex,ulongy){returnx此外,使用unchecked不会让事情变得更好。大脑融化。另一个编辑。这有效:publicboolsbyte_ulong_compare(sbytex,ulongy){////returnsx127)returntrue;return((long)x 最佳答案

c# - 不使用 try/catch 检查格式正确的 XML?

有谁知道如何在try/catchblock中不使用XmlDocument.LoadXml()之类的东西来检查字符串是否包含格式正确的XML?我得到的输入可能是XML,也可能不是XML,我希望代码能够识别输入可能不是XML而不依赖于try/catch,以提高速度和一般原则,即非特殊情况不应引发异常(exception)。我目前有执行此操作的代码;privateboolIsValidXML(stringvalue){try{//Checkweactuallyhaveavalueif(string.IsNullOrEmpty(value)==false){//Trytoloadthevalu