DynamicException
和throwDyn
以及throwDynTo
曾经在Control.OldException
模块中。既然OldException
已经不复存在了,依赖它的软件包就会被破坏。
DynamicException
套餐或其他地方是否有ExtensibleException
的等价物?我想以最小的改变逃脱。
上下文:我正在尝试使用GHC 7.6.1构建lambdabot。已损坏的文件在Signal.hs
中为lambdabot-utils
。
更新是否有某种指南可将旧的例外代码移植到新的可扩展异常中? lambdabot
在多个地方使用OldException
,似乎无法快速修复。
答案 0 :(得分:8)
新Control.Exception
中这些功能的等效项仅为throw
,throwTo
和catch
,因为Control.Exception
默认支持动态例外。
旧界面和新界面之间的主要区别在于这些函数具有Exception
约束而不是Typeable
。但是,在大多数情况下,默认实现足够好,因此您只需要为要使用的类型声明Exception
个实例,例如。
instance Exception Foo