Actually, I think it is the normal behavior your code should do. The Try/Catch serves for that purposes. If it falls in the Catch, it means it cannot be opened exclusively. But, that does not mean it is because of that. It could be before the file does not exist and such.
Is that how you intended it to be?