相关疑难解决方法(0)

Haskell中的异常处理

我需要帮助来理解三个Haskell函数的用法

  • 试试(Control.Exception.try :: Exception e => IO a -> IO (Either e a))
  • catch(Control.Exception.catch :: Exception e => IO a -> (e -> IO a) -> IO a)
  • handle(Control.Exception.handle :: Exception e => (e -> IO a) -> IO a -> IO a)

我需要知道几件事:

  1. 我什么时候使用哪个功能?
  2. 如何使用此函数的一些简单示例?
  3. 捕获和处理之间的区别在哪里?它们具有几乎相同的签名,只有不同的顺序.

我会写下我的试验,希望你能帮助我:

尝试

我有一个例子:

x = 5 `div` 0
test = try (print x) :: IO (Either SomeException ())
Run Code Online (Sandbox Code Playgroud)

我有两个问题:

  1. 如何设置自定义错误输出?

  2. 我该怎么做才能将所有错误都设置为SomeException,所以我不必编写 :: IO (Either SomeException())

捕获/试

你能给我看一个自定义错误输出的简短例子吗?

haskell exception-handling

74
推荐指数
2
解决办法
2万
查看次数

标签 统计

exception-handling ×1

haskell ×1