File 操作を行う際、存在確認は行わないほうがよい で書いたんですが、どうも事前に確認すれば問題ないと考えている人がかなりいるようなので再び書きます。
事前確認が確実に保障されるものは非常に限られます。その process で扱える private memory のみです。Multi thread で動作させる application であればそのうち lock した memory のみという条件がそれに加わります。それ以外は事前確認の結果が保証されません。
事前確認が確実に有効な状況というのは非常に限定的であることに注意してください。
つまり、事前確認を行ったところで結果が保障されないわけですから、事前確認を行わない前提の例外処理を必ず組み込まなければなりません。
その上で事前確認を行うか?判断することになります。この場合の事前確認を行うか否かの判断材料は主に performance でしょう。といっても正常系ではなく、例外系の処理での performance です。例外系の performance が重要であれば実装する。重要でなければ実装する必要は無いと思います。
危惧しているのは安易な事前確認でその結果が保障されていると勘違いする人が出てくることです。これを履き違えると脆弱性を作りこむことにつながります。
その application が排他的に扱えるものでない限り事前確認は信用してはいけない。非常に重要な原則です。