Guidelines on clean up code

Many a times, we use the catch block inside the try catch block for our clean up code.


Something like

try


{


 // Do something


}


catch


{


    // work failed, clean up code here
}


 


Rather than the above approach of using the catch block, it would be nicer to use the finally block, something like


 


bool workSuccessful = false;


try


{


   // do some work


   workSuccessful = true;


}


finally


{


  if(!workSuccessfull)


  {


    // cleanup code here.


  }


}


 


There is elegance in the latter method and I would certainly recommend that approach, if you cannot use “using“. See below for details.


 


PS: Use this approach only if better alternatives are not available. One of the automatic cleanup approaches available with C# is the using construct.


Something like,


using (TextReader tr = new StreamReader(“FileName”))


{


  // do my work here.


}


 


The “using” construct automatically clean up the unmanaged resource (TextReader) once the block has completed execution.


In the event that you cannot use “using“, the try-finally approach would be the best way.


 

One thought on “Guidelines on clean up code”

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>