Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Haskell 强制阻止,直到异常处理程序完成_Haskell_Concurrency_Exception Handling_Ghc - Fatal编程技术网

Haskell 强制阻止,直到异常处理程序完成

Haskell 强制阻止,直到异常处理程序完成,haskell,concurrency,exception-handling,ghc,Haskell,Concurrency,Exception Handling,Ghc,我希望能够处理线程A中的异步异常,这样,如果另一个线程B调用throwTo,该调用将阻塞,直到A中的处理程序有机会完成为止。据我所知,只有在异常被“接收”之前才会阻塞 我原以为聪明地使用不间断提问也许会对我有所帮助,但我被难倒了 编辑:我刚刚注意到: 使用try和catch进行恢复的区别在于 捕获处理程序位于隐式块内(请参见“异步 异常),这在捕获异步异常时非常重要 我想这可能意味着catch实际上会实现我想要的功能(我使用的是onException),但事实似乎并非如此。因此,作为另一个问题:

我希望能够处理线程
A
中的异步异常,这样,如果另一个线程
B
调用
throwTo
,该调用将阻塞,直到
A
中的处理程序有机会完成为止。据我所知,只有在异常被“接收”之前才会阻塞

我原以为聪明地使用
不间断提问
也许会对我有所帮助,但我被难倒了

编辑:我刚刚注意到:

使用try和catch进行恢复的区别在于 捕获处理程序位于隐式块内(请参见“异步 异常),这在捕获异步异常时非常重要


我想这可能意味着
catch
实际上会实现我想要的功能(我使用的是
onException
),但事实似乎并非如此。因此,作为另一个问题:“处理程序在隐式
块中
”在这里是什么意思?

您始终可以通过
创建自己的
,但您可能已经知道了。