no empty except, `IOError` suffices?