add eof exception catch