Я не думаю, что ваши проблемы связаны с лучшими практиками.
Лучшая практика, которую вам нужно наблюдать в вашем случае - это строка, которая гласит
stringBuilder.ToString(0, stringBuilder.Length - 1);
Вы вызываете исключение, не проверяя длину строки. Если ваша длина равна 0, просто верните пустую строку.
Если мы говорим в общих чертах, если у вас есть возможность кодировать общие проблемы, пустые наборы, плохо отформатированные данные, то вы должны сделать все возможное, чтобы оградить пользователя от ненужных ошибок.
Однако * иногда лучше внезапно / громко потерпеть неудачу, чем тихо потерпеть неудачу.