Avatar
僕のコメントは fatalError とログにどう折り合いをつけるかについてでした。 一般的に Universal Error ( fatalError 含む)はハンドリングされることを想定しないエラーですが、とはいえログを取りたいというような用途ではハンドリングして処理を挟み込みたかったりします。ですが、 Swift にはその言語機能がないので今はできません。しかし、それを回避するために、本来 fatalError である場所を Recoverabble Error 等にしてもコードが複雑化してしまいます。たとえば、一番ルートで全部まとめてハンドリングしてログをとろうとしたら、そのスタックトレース上のすべての関数が throws でないといけなくなります。 結局、そこまでしてもそれで対処できる Universal Error は一部であり、ログをとれない Universal Error は他にもあるので、それだったら設計的にキレイな方に倒しておいて、本当に必要な箇所だけハンドリングできるようにするのが良いバランスかなと思います。 ということが「fatalError を使うのが適切かと、 Swift が fatalError を含む Universal Error をハンドリングする方法を提供していないことは切り分けて考えた方がいいと思います。」で言いたかったことです。