12

MathLinkや のような機能は、アボートを吸収し、それ以上伝播しない独自の内部のようなものLinkWriteを持っていることがわかりました。LinkReadCheckAbort

これは、次のように簡単に表示できます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ますか?

4

1 に答える 1