Only catch IOException in open()
Clean exception (do not use Exception base class), catch KeyboardInterrupt