$? relies on the program it's checking on to be well behaved and return a useful return value. If it always just exits with the return code of 0 (which is the default and signifies success), even if there is an error, then there's not much you can do. Other than checking the file yourself manually to begin with.
_________________________
Bitt Faulk