纯粹功能性尝试捕获的危险是什么?

时间:2016-12-28 08:11:39

标签: haskell error-handling try-catch

这里我有一些代码似乎实现了"纯粹" try-catch的功能版本:评估一个值,如果发生错误,则返回相同类型的不同给定值。以下示例适用于GHCi。

pureCatch的第一个参数是尝试计算的值。第二个参数是在计算异常时使用的值。 (显然可以用Maybe替换,但效果是一样的。)

collection.Indexes.CreateOne(Builders<searchFileByAuthor>.IndexKeys.Text(x=>x.subject));

除了严重的系统错误(如内存不足或GHC错误)之外,是否存在使用此技术无法捕获的错误?是否可以扩展此功能以捕获任何其他类型的错误?

这里使用unsafePerformIO真的不安全吗?怎么样?这会彻底破坏程序吗?

这种技术是否能够在评估&#34;值&#34;?

时捕获所有异常

从Haskell语言的角度来看,这种技术或未定义的行为是否有任何不确定性?

我还应该知道其他什么吗? (告诉我,我是多么顽皮,试图抓住一切:))我不一定会在任何地方使用它,这是一种求知欲。我不是Haskell程序员。

是否可以使用更好的语法编写或不需要XScopedTypeVariables?

我觉得这可能是开始Haskell程序员喜欢用来捕获错误的函数。那么,为什么不呢?

0 个答案:

没有答案