处理我需要帮助了解三个哈斯克尔的使用功能异常哈斯克尔
- 试(
Control.Exception.try :: Exception e => IO a -> IO (Either e a)
) - 赶上(
Control.Exception.catch :: Exception e => IO a -> (e -> IO a) -> IO a
) - 手柄(
Control.Exception.handle :: Exception e => (e -> IO a) -> IO a -> IO a
)
我需要知道几件事:
- 什么时候使用哪个功能?
- 如何用一个简单的例子来使用这个函数?
- catch和handle的区别在哪里?他们只有不同的顺序才具有几乎相同的签名。
我会尽量记下我的考验,希望你能帮助我:
尝试
我有这样一个例子:
x = 5 `div` 0
test = try (print x) :: IO (Either SomeException())
我有两个问题:
如何设置自定义错误输出?
我能做些什么来设置所有错误SomeException,所以我不应该写
:: IO (Either SomeException())
捕获/尝试
你能告诉我有一个自定义的错误输出一个简短的例子?
Re:3 - 阅读[精细手册](http://hackage.haskell.org/packages/archive/base/latest/doc/html/Control-Exception-Base.html):[handle - 一个版本与争论交换的争论;在处理程序的代码更短的情况下很有用](http://hackage.haskell.org/packages/archive/base/latest/doc/html/Control-Exception-Base.html#v:handle)。 – 2011-05-15 16:26:02