А, ну я вот эту мысль как раз и хотел донести - нет таких ситуаций, когда нельзя заменить исключение чем-то другим.
Если ты дошёл до того, что руками его выкидываешь, то ты можешь его и не выкидывать, а чем-то другим заменить.
Прикол только в том, что мы в JS, и он очень не идеален.
Я, кстати, после подкаста
@amel_true пошёл искать себе монаду Either для TS. Нашёл, но не понял, как её внедрить в существующую экосистему. А ещё с удивлением обнаружил, что называющий себя функциональным RxJS такой не предоставляет, зато у него есть операторы throwError и catchError.
https://gcanti.github.io/fp-ts/modules/Either.ts.html