並列アルゴリズムがドアをノックしているので、エラー処理について考える良い機会かもしれません。
そのため、最初はエラーコードがありました。吸いました。それらを無視するのは自由だったので、遅れて失敗してデバッグしにくいコードを生成することができました。
その後、例外が発生しました。それらは一度発生すると無視できなくなり、ほとんどの人(Joelを除く)は彼らを好むようになりました。
そして今、並列コードを支援するライブラリが手に入りました。問題は、非並列コードの場合ほど簡単に並列コードの例外を処理できないことです。タスクを非同期で起動し、例外をスローした場合、そのタスクを過ぎてアンワインドするスタックトレースはありません。できるのは、そのようなオブジェクトがある場合、それをキャプチャしてタスクオブジェクトに登録することです。ただし、例外の主な強みは無効になります:それらを確認する必要があり、追加の労力なしで無視できますが、シングルスレッドコードでは例外は適切なアクションを必ずトリガーします(プログラムを終了することを意味する場合でも)。
言語実装またはライブラリは、並列コードのエラーをどのようにサポートする必要がありますか?