[CODE] try { FileStream file = File.OpenRead( this.folderName + Path.DirectorySeparatorChar + fileName ); } catch( DirectoryNotFoundException ) { throw; } catch( FileNotFoundException ) { throw; } [/CODE] That´s plainly stupid, if you don´t do anything at the catch block, why catch it and rethrow it instead of letting it unwind alone?, you get exactly the same without polluting your code with 11 extra lines over 1 line PS: At least you use "throw" instead of "throw e", which starts a new StackTrace ;) PSS: On topic: catch each concrete exception when you can do somethiung about it, catch all exceptions around the main loop to show a "nice" message to the user and die elegantly