草庐IT

finalizer

全部标签

c# - 为什么 try {...} finally {...} 好;试试 {...} catch{} 不好?

我看到有人说使用不带参数的catch是一种不好的形式,尤其是当catch什么都不做的时候:StreamReaderreader=newStreamReader("myfile.txt");try{inti=5/0;}catch//Noargs,soitwillcatchanyexception{}reader.Close();然而,这被认为是好的形式:StreamReaderreader=newStreamReader("myfile.txt");try{inti=5/0;}finally//Willexecutedespiteanyexception{reader.Close();}

c# - 如果我在 Try block 中返回值,Finally 语句中的代码会触发吗?

我正在为一位friend审查一些代码,并说他在try-finallyblock内使用了return语句。即使tryblock的其余部分没有触发,Finally部分中的代码是否仍然触发?例子:publicboolsomeMethod(){try{returntrue;thrownewException("test");//doesn'tseemtogetexecuted}finally{//codeinquestion}} 最佳答案 简单的回答:是的。 关于c#-如果我在Tryblock中

c# - 在 C# 中使用 Finalize/Dispose 方法

C#2008我已经研究了一段时间了,但我仍然对在代码中使用finalize和dispose方法感到困惑。我的问题如下:我知道在处理非托管资源时我们只需要一个终结器。但是,如果有托管资源调用非托管资源,是否还需要实现终结器?但是,如果我开发一个不直接或间接使用任何非托管资源的类,我是否应该实现IDisposable以允许该类的客户端使用'using陈述'?实现IDisposable只是为了使您的类的客户端能够使用using语句是否可行?using(myClassobjClass=newmyClass()){//Dostuffhere}我在下面开发了这个简单的代码来演示Finalize/d

javascript - 在 jQuery AJAX 调用中是否有任何类似于 'finally' 的东西?

在jQueryAJAX调用中是否有Java的“最终”模拟?我这里有这段代码。在我的always中,我抛出一个异常,但我总是希望它转到then()方法。call.xmlHttpReq=$.ajax({url:url,dataType:'json',type:'GET'}).always(function(processedDataOrXHRWrapper,textStatus,xhrWrapperOrErrorThrown){throw"something";}).then(function(){alert("iwanttoalwaysrunnomatterwhat");});我已经尝试

javascript - 为什么 `finally` 中的返回覆盖 `try` ?

try/catchblock中的return语句如何工作?functionexample(){try{returntrue;}finally{returnfalse;}}我希望这个函数的输出是true,但它是false! 最佳答案 最后总是执行。这就是它的用途,这意味着它的返回值会在您的情况下使用。您需要更改您的代码,使其更像这样:functionexample(){varreturnState=false;//initializationvalueisreallyuptothedesigntry{returnState=true;

go - Go 中是否有类似 finally() 的东西与 init() 正好相反?

Go中是否有某些东西与init()在包中所做的正好相反? 最佳答案 这个之前Go团队讨论过,结论是不加支持。Quotingminux:Personally,Ipreferthestylewhereprogramexitishandledexactlysameasprogramcrash.Ibelievenomatterhowhardyoutry,yourprogramcanstillcrashundersomeunforeseensituations;forexample,memoryshortagecanbringanywell-

go - Java finalize 方法的等价物

Go中有javafinalize之类的方法吗?如果我有一个像这样的类型结构typeFoostruct{f*os.File....}func(p*Foo)finalize(){p.f.close()}如何确保当对象被垃圾回收时,文件被关闭? 最佳答案 您也不会在Java中这样做。在Java中正确的做法是使用finallyblock将其关闭在您打开的位置附近。您可以在go中使用类似的模式和defer函数来进行清理。例如,如果您这样做(java):try{open();//dostuff}finally{close();}在开始时,你会这

c++ - __cxa_finalize 和 __attribute__

据我所知,一个程序(在Linux中用C++编写)在退出main函数时调用__cxa_finalize。我创建了一个共享库并在主函数中使用了这个库。我想在主程序加载/卸载这个库时采取一些行动。我发现函数__attribute__在创建共享库时可以用于该目的(我猜这个函数应该在共享库代码中实现)我添加了如下内容:void__attribute__((constructor))my_load(void);void__attribute__((destructor))my_unload(void);我在以下链接中实现了函数my_load和my_unload:http://tdistler.co

c - MPI_Finalize() 没有完成

#include#include#includeintmain(intargc,char*argv[]){inti,done=0,n;doublePI25DT=3.141592653589793238462643;doublepi,tmp,h,sum,x;intnumprocs,rank;MPI_Statusstatus;MPI_Init(&argc,&argv);MPI_Comm_size(MPI_COMM_WORLD,&numprocs);MPI_Comm_rank(MPI_COMM_WORLD,&rank);if(numprocs1\n",numprocs);else{while

mongodb - 何时在 mongodb cxx r3.0.2 驱动程序中使用 finalize

我很困惑,在onlinedoc,的代码片段中它显示了调用update_many方法时finalize的用法,如下所示:mongocxx::stdx::optionalresult=collection.update_many(document{}但是我在没有finalize的mongocxx驱动代码中看到了示例代码//Updatemultipledocuments.{//@begin:cpp-update-multiple-documentsbsoncxx::builder::stream::documentfilter_builder,update_builder;filter_bu