MathLink
や のような機能は、アボートを吸収し、それ以上伝播しない独自の内部のようなものLinkWrite
を持っていることがわかりました。LinkRead
CheckAbort
これは、次のように簡単に表示できますLinkRead
。
link = LinkLaunch[First[$CommandLine] <> " -mathlink"];
LinkRead[link];
LinkWrite[link, Unevaluated[Pause[10]]];
{LinkRead[link], Print["!!"]}
上記のコードを評価した後、Alt+.を押すと、次の出力が得られます。
During evaluation of In[6]:= !!
Out[9]= {ReturnPacket[$Aborted], Null}
ご覧のとおり、アボートは によって吸収されましたLinkRead
。
私の問題は、に基づく評価のフロー制御を壊してしまうことCheckAbort
です。
LinkRead
やなどの関数によって吸収されるアボートをインターセプトする方法はありLinkWrite
ますか?