try { if (ClientListInfo[num].Connected) { ClientListInfo[num].Shutdown(SocketShutdown.Both); ClientListInfo[num].Close(); } } catch (ObjectDisposedException exception) { if (exception != null) { exception = null; } } catch (ArgumentOutOfRangeException exception2) { if (exception2 != null) { exception2 = null; } }
我看人家写代码的时候 有两个地方的异常会用到exception = null;
可是以我理解 要是不对异常处理的时候就把 直接 catch{}里面不做任何操作就行了,可是人家这样写exception = null;....这个就不知道为什么了 ,特意来请教下大家
一楼的说法是瞎扯。
同时,这段代码的也没有任何意义。
试想,既然能catch了,exception还能为null?这个判断本身就是扯蛋了。
至于垃圾回收,超过catch的作用域后,exception变量就过期了,垃圾回收机制就会在必要的时候回收。
这个问题本来就是个瞎扯的问题,没有别的解释,出了catch是会释放,但不是实时释放
直接释放掉了呗,不然垃圾回收不是实时回收的,似乎很少需要这种情况
catch{}这样会产生异常的 垃圾么? 不是没有产生变量么
@.F.:还是有极端的情况下有可能有用的,问题的前提是这么写有必要,不是说这么写有道理,这个极端的前提是,内存需求苛责,而垃圾释放机制不是实时的,所以实时释放,至于不为空,这个判断一般是用不上,除非有拦截的情况
这种方法简直是坑爹!写这种代码不被人骂死!
搞笑的吧!