обработка исключений try / catch - совершенно нормальный и обычный стиль программирования в .NET Framework.А в XML есть строгие правила синтаксиса, которые анализатор XML проверяет при разборе разметки, поэтому вам нужно быть готовым к обработке любой ошибки синтаксического анализа, поэтому подходящим инструментом для этого является try / catch.
Вы не сказали, управляете ли высоздание строкового аргумента, который вы передаете XDocument.Parse.Если вы не контролируете это, вы не можете избежать ошибок.Если вы управляете, то убедитесь, что вы не используете конкатенацию строк или StringBuilders для создания строк с XML, вместо этого убедитесь, что вы используете API-интерфейсы XML, такие как XmlWriter, таким образом вы получите правильно сформированную разметку XML или вы получите любую ошибку при построенииразметка, а не при ее разборе.Но любые ошибки, выдаваемые XmlWriter, также лучше всего обрабатываются с помощью try / catch.