Я предпочитаю Вариант B , поскольку он проходит только один раз.
В Опция A может потребоваться доступ ко многим элементам более одного раза (количество раз зависит от реализации сортировки alogrithm).
Опция A является неэффективной реализацией, но приводит к довольно четкому алгоритму. Однако он использует довольно некрасивую функцию исключения, которая будет срабатывать только при передаче пустого массива (так что, возможно, это можно сделать более понятным с помощью проверки перед сортировкой).
PS, вы никогда не должны просто ловить "Исключение" и затем исправлять вещи. Существует много типов исключений, и, как правило, вы должны ловить каждое возможное и обрабатывать его соответствующим образом.