I'm pretty sure that OS-level permission checks result in lame IOExceptions (sometimes with a string message "Permission Denied"). Whoever designed exception handling in the IO framework was on crack.