如果我有一个返回某些东西的方法,比如publicDataTableReturnSomething(){try{//logicherereturnds.Tables[0];}catch(Exceptione){ErrorString=e.Message;}}这会产生编译器错误,显然是因为catch{}block没有返回任何内容。所以当我有带返回值的方法时,我不使用try-catchblock,这是一种不好的做法。如果有错误,我想将错误字符串设置为该错误。但是我也需要一个返回值。建议? 最佳答案 像这样将返回值存储在临时变量中:publ
我目前没有这个问题,但你永远不知道,思想实验总是很有趣。忽略你的体系结构必须要尝试这样做的明显问题,让我们假设你有一些别人设计的可怕的代码,你需要做一个在同一代码块中进行大量不同的操作,例如:WidgetMaker.SetAlignment(57);contactForm["Title"]=txtTitle.Text;Casserole.Season(true,false);((RecordKeeper)Session["CasseroleTracker"]).Seasoned=true;乘以一百。其中一些可能有效,另一些可能会出现严重错误。您需要的是“onerrorresumenex
给定以下C#代码,其中Dispose方法以两种不同的方式调用:classDisposable:IDisposable{publicvoidDispose(){}}classProgram{staticvoidMain(string[]args){using(vardisposable1=newDisposable()){Console.WriteLine("using");}vardisposable2=newDisposable();try{Console.WriteLine("try");}finally{if(disposable2!=null)((IDisposable)dis
这个问题在这里已经有了答案:WillcodeinaFinallystatementfireifIreturnavalueinaTryblock?(12个答案)关闭7年前。我有以下代码:publicDataTableGetAllActiveUsers(){DataTabledataTable=newDataTable();try{connection.Open();SqlCommandgetAllActiveUsersCommand=newSqlCommand(getAllUsers,connection);SqlDataAdapterdataAdapter=newSqlDataAdap
MSDNrecommends将实现IDisposable的类的任何实例化放入usingblock中。或者,如果它在try-catchblock中被实例化,则在Finally中执行Dispose。像这样在try-catchblock中使用usingblock有什么问题吗?try{using(Foobar=newFoo()){bar.doStuff();}}catch(Exceptione){//vomite}当然,我可以在Finallyblock中调用Dispose,但我是编程新手,我只是想知道是否做这样的事情这实际上是可以接受的,或者如果有人会拍打我的后脑勺并对我大喊我Doing-It
现在,我在continue语句方面遇到了一个大问题。FetchUnseenMessages可能会或可能不会返回错误,具体取决于它是否能够连接到指定的电子邮件帐户。如果FetchUnseenMessages失败,我希望continue语句返回到foreach语句中的下一个项目(尝试下一个电子邮件帐户)。我得到了一些意想不到的结果。我不相信continue语句会转到foreach语句中的下一项,而是返回到try语句的开头并再次尝试。我整天都被困在这个问题上,而且我很困。请帮忙。谢谢,克里斯。foreach(stringlinlUserName){try{newMessages=FetchU
我想知道,在通用编程中什么更好或/和更快?避免异常还是等待异常?避免异常是:stringa=null;list=someMethod();if(list.Length>0){a=list[0];}if(a!=null)...或者trycatch异常...stringa=null;try{a=someMethod()[0];catch{}if(a!=null)... 最佳答案 性能并不是这里最相关的问题。问题是,两者中的哪一个会导致程序更具可读性/可维护性/可测试性。您可以稍后再担心性能。一般来说,不要使用异常来进行流量控制。它们实际
我知道为什么,但我想问一下是否有人很好地理解为什么线程内引发的异常从未被启动它的代码捕获。下面是一些非常简单的代码来演示我的意思:usingSystem;usingSystem.Collections.Generic;usingSystem.Threading;namespaceTestCrash{classProgram{privatestaticvoidCrash(objectcontrol){AutoResetEventare=(AutoResetEvent)(((object[])control)[0]);are.Set();thrownewException("Burnbab
例如,我的方法中有一个try/catch:}catch(OurCustomExceptionObject1ex){txtErrorMessage.InnerHtml="test1";}catch(OurCustomExceptionObject2ex){txtErrorMessage.InnerHtml="test2";}catch(OurCustomExceptionObject3ex){txtErrorMessage.InnerHtml="test3";}...restofcodehereisbeingexecutedafterthetry/catch如果捕获到任何异常,我不希望运
首先声明:我有使用其他语言的经验,但仍在学习C#的精妙之处关于问题...我正在查看一些代码,它以我关心的方式使用try/catchblock。当调用解析例程时,程序员没有返回错误代码,而是使用了以下逻辑catch(TclExceptione){thrownewTclRuntimeError("unexpectedTclException:"+e.Message,e);}这被调用者捕获,抛出相同的错误......被调用者捕获,抛出相同的错误........被调用者捕获,抛出相同的错误......备份大约6个级别。我是否认为所有这些catch/throwblock都导致了性能问题,或者这是