Вместо выкидывания исключения можно использовать discriminated union улучшив тем самым типобезопасность и исключив необходимость в лишнем импорте.