I think you misunderstand. File, an uninitialized File_Type variable, isn’t open at the beginning of the procedure, so there is no point trying to close it.
If you still want to close it, raise an exception, catch it, do nothing with it, then carry on, then by all means go ahead. I just wanted to point out that it is completely unnecessary, and your reply to @zertovitch made it seem as if you thought otherwise.
Actually a variable of File_Typeis initialized, so the Ada run-time knows it is closed at the beginning. It is one of the rare cases or perhaps the only case of an Ada 83 type which is implicitly initialized. Ada 95 brought controlled types, such as Unbounded_String, which are also implicitly initialized.