Just add a try ... catch block:
foreach (string file in System.IO.Directory.GetFiles(path, "*.xml"))
{
Console.WriteLine(file);
try
{
XDocument xdoc = XDocument.Load(file);
string uid = xdoc.Descendants("G1").First()?.Value;
Console.WriteLine(uid);
using (StreamWriter sw = File.AppendText(result))
{
sw.WriteLine(uid);
}
}
catch (Exception e)
{
Console.WriteLine($"Unable to load \"{file}\"\n {e.Message}");
}
}