Catch exceptions and fire error events inside the while loop, otherwise
the read process cannot be performed till the end, dumb ass!