Regarding Haskell and exceptions, may I suggest Real World Haskell chapter 19? You might also want to read Simon Marlow's paper on extensible exceptions, the latter being realized in GHC 6.10.1.