Where is the documentation on exception types kept?

Hello, I am trying to catch an "thread blocked on MVar indefinitely exception." Of course I can use ::SomeException as explained in http://hackage.haskell.org/ packages/archive/base/latest/doc/html/Control-Exception.html#g:3 but there is no explanation as to how to find the more case specific exceptions. http://hackage.haskell.org/packages/archive/base/latest/doc/html/Control- Concurrent-MVar.html#t:MVar does not discuss exceptions at all! Indeed, I don't know of any haddock pages that include descriptions of exception types :( :O Thanks, Timothy

Hi,
I am trying to catch an "thread blocked on MVar indefinitely exception." Of course I can use ::SomeException as explained in http://hackage.haskell.org/ packages/archive/base/latest/doc/html/Control-Exception.html#g:3 but there is no explanation as to how to find the more case specific exceptions. http://hackage.haskell.org/packages/archive/base/latest/doc/html/Control- Concurrent-MVar.html#t:MVar does not discuss exceptions at all! Indeed, I don't know of any haddock pages that include descriptions of exception types :( :O
In this particular case it's easy: http://hackage.haskell.org/packages/archive/base/4.6.0.0/doc/html/Control-Ex... But in general, figuring out the exception type is not straight forward. Personally, I think an uncaught exception should print the type of that exception (e.g. use a derived show instance). But most of them have a show instance that is useful for end-users. The upcoming 1.4.0 release of Hspec will print the type of uncaught exceptions in test cases. So if you are into BDD/TDD that might be useful;) Cheers, Simon

I really like to be able to find these things in documentation and if not
documentation than source code. However thank you for your reply, in this
case it has helped me :)
Timothy
---------- Původní zpráva ----------
Od: Simon Hengel
I am trying to catch an "thread blocked on MVar indefinitely exception." Of course I can use ::SomeException as explained in http://hackage.haskell. org/(http://hackage.haskell.org/) packages/archive/base/latest/doc/html/Control-Exception.html#g:3 but there
is no explanation as to how to find the more case specific exceptions. http://hackage.haskell.org/packages/archive/base/latest/doc/html/Control- (http://hackage.haskell.org/packages/archive/base/latest/doc/html/Control-) Concurrent-MVar.html#t:MVar does not discuss exceptions at all! Indeed, I
don't know of any haddock pages that include descriptions of exception types :( :O
In this particular case it's easy: http://hackage.haskell.org/packages/archive/base/4.6.0.0/doc/html/Control- Exception.html#t:BlockedIndefinitelyOnMVar (http://hackage.haskell.org/packages/archive/base/4.6.0.0/doc/html/Control-Ex...) But in general, figuring out the exception type is not straight forward. Personally, I think an uncaught exception should print the type of that exception (e.g. use a derived show instance). But most of them have a show instance that is useful for end-users. The upcoming 1.4.0 release of Hspec will print the type of uncaught exceptions in test cases. So if you are into BDD/TDD that might be useful;) Cheers, Simon"

On 12-11-07 03:36 PM, timothyhobbs@seznam.cz wrote:
I am trying to catch an "thread blocked on MVar indefinitely exception." Of course I can use ::SomeException as explained in http://hackage.haskell.org/packages/archive/base/latest/doc/html/Control-Exc... but there is no explanation as to how to find the more case specific exceptions.
In general, because Exception instances are Typeable instances, you can get a name, and then you can use that for searches. import Control.Exception import Data.Typeable main = do aida <- try (readFile "no") case aida of Left (SomeException e) -> print (typeOf e)

Thanks! That is a neat way. At least for exceptions which I know to exists
and know how to trigger ;)
Tim
---------- Původní zpráva ----------
Od: Albert Y. C. Lai
I am trying to catch an "thread blocked on MVar indefinitely exception." Of course I can use ::SomeException as explained in http://hackage.haskell.org/packages/archive/base/latest/doc/html/Control- Exception.html#g:3 (http://hackage.haskell.org/packages/archive/base/latest/doc/html/Control-Exc...) but there is no explanation as to how to find the more case specific exceptions.
In general, because Exception instances are Typeable instances, you can get a name, and then you can use that for searches. import Control.Exception import Data.Typeable main = do aida <- try (readFile "no") case aida of Left (SomeException e) -> print (typeOf e) _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe (http://www.haskell.org/mailman/listinfo/haskell-cafe)"
participants (3)
-
Albert Y. C. Lai
-
Simon Hengel
-
timothyhobbs@seznam.cz