当函数deferDemo返回失败时,并不能destroy已create成功的资源()func deferDemo() error {err := createResource1()if err != nil { return ERR_CREATE_RESOURCE1_FAILED}defer func() { if err != nil { destroyResource1() }}()err = createResource2()if err != nil { return ERR_CREATE_RESOURCE2_FAILED}defer func() { if err != nil { destroyResource2() }}()err = createResource3()if err != nil { return ERR_CREATE_RESOURCE3_FAILED}return nil }此题为判断题(对,错)。

当函数deferDemo返回失败时,并不能destroy已create成功的资源()

func deferDemo() error {err := createResource1()if err != nil { return ERR_CREATE_RESOURCE1_FAILED}defer func() { if err != nil { destroyResource1() }}()err = createResource2()if err != nil { return ERR_CREATE_RESOURCE2_FAILED}defer func() { if err != nil { destroyResource2() }}()err = createResource3()if err != nil { return ERR_CREATE_RESOURCE3_FAILED}return nil }

此题为判断题(对,错)。


相关考题:

关于pthread_create函数,下列说法错误的是____。 A、它返回是线程创建成功与否的错误码B、线程属性参数使用空指针表示使用默认参数C、它成功创建线程后立刻执行线程函数等待其结束后返回D、可通过它将参数传递给线程函数

关于函数返回值的错误设计,下面说法正确的是() A. 如果失败原因只有一个,则返回boolB. 如果失败原因超过一个,则返回errorC. 如果没有失败原因,则不返回bool或errorD. 如果重试几次可以避免失败,则不要立即返回bool或error

在C程序中,语句“char*func(intx,inty);”表示的含义是( )。A.对函数func的定义B.对函数func的调用C.对函数func返回值类型的说明D.对函数func的原型说明

以下函数在a[0]到a[n-1]中,用折半查找算法查找关键字等于k的记录,查找成功返回该记录的下标,失败时返回-1,完成程序中的空格。

Linux的系统调用函数的返回值为0,表示系统调用失败,非0表示成功。系统调用失败时可以通过变量errno获取失败原因,通过strerror()函数可以获取系统给出的描述失败原因的文字信息。

有如下函数定义,执行函数调用func(3)的返回值是________ 。 def func(n): if n <= 1: return n else: return(func(n-1) + func(n-2))

若fopen()函数打开文件失败,其返回值是()。A.1B.-1C.NULLD.ERROR

用户登录操作函数的返回值为0时表示调用失败,不为0时表示调用成功。

关于bind函数下列说法正确的是:A.执行成功时会返回0B.失败时会返回SOCKET_ERRORC.错误信息可用WSAGetLastError()函数查询D.执行成功时会返回套接字