System.IO.Error的重点是什么

时间:2014-05-18 23:09:16

标签: exception haskell

我注意到Control.Exception中还有一个IOException类型,具有单独的System.IO.Error模块和IOError类型的重点是什么?是因为历史原因吗?我应该避免使用它而更喜欢Control.Exception.IOException吗?

2 个答案:

答案 0 :(得分:12)

是的,这只是出于历史原因。

System.IO.ErrorIOError类型,它只是IOException的类型同义词(无论如何都在GHC中)。

GHC奇特的异常层次结构机制不是Haskell标准的一部分。因此,IOError用于与Haskell 2010兼容。

如果您对GHC特定感到满意,IOException和整个异常层次结构只是更好,应该是首选。

答案 1 :(得分:3)

IOError是旧的Haskell98 IO exception类型。 Control.Exception和其他更新的变体不一定与Haskell98兼容,但我们可以在其中嵌入旧的Haskell98错误,因此类型为同义词。