Вероятно можно весь switch взять в try/catch, а то перемешана логика и обработка ошибок. А еще есть опечатка в слове алгоритм.