title: How to catch a no parse exception from the read function in Haskell?
body: <p>In my Haskell program, I want to read in a value given by the user using the <code>getLine</code> function.  I then want to use the <code>read</code> function to convert this value from a string to the appropriate Haskell type.  How can I catch parse errors thrown by the <code>read</code> function and ask the user to reenter the value?</p>
  
  <p>Am I right in thinking that this is not an "IO Error" because it is not an error caused by the IO system not functioning correctly?  It is a semantic error, so I can't use IO error handling mechanisms?</p>