Skip to content

Commit 4b88216

Browse files
authored
Handled exceptions from exporters in CompositeExporter. Preventing benchmark failure when some of the exporters fail (#1902)
1 parent 625b2cc commit 4b88216

File tree

1 file changed

+25
-3
lines changed

1 file changed

+25
-3
lines changed

src/BenchmarkDotNet/Exporters/CompositeExporter.cs

Lines changed: 25 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
using System.Collections.Generic;
1+
using System;
2+
using System.Collections.Generic;
23
using System.Collections.Immutable;
34
using System.Linq;
45
using BenchmarkDotNet.Extensions;
@@ -21,10 +22,31 @@ public void ExportToLog(Summary summary, ILogger logger)
2122
logger.WriteLineHint("You haven't configured any columns, your results will be empty");
2223

2324
foreach (var exporter in exporters)
24-
exporter.ExportToLog(summary, logger);
25+
{
26+
try
27+
{
28+
exporter.ExportToLog(summary, logger);
29+
}
30+
catch (Exception e)
31+
{
32+
logger.WriteLineError(e.ToString());
33+
}
34+
}
2535
}
2636

2737
public IEnumerable<string> ExportToFiles(Summary summary, ILogger consoleLogger)
28-
=> exporters.SelectMany(exporter => exporter.ExportToFiles(summary, consoleLogger));
38+
=> exporters.SelectMany(exporter =>
39+
{
40+
var files = new List<string>();
41+
try
42+
{
43+
files.AddRange(exporter.ExportToFiles(summary, consoleLogger));
44+
}
45+
catch (Exception e)
46+
{
47+
consoleLogger.WriteLineError(e.ToString());
48+
}
49+
return files;
50+
});
2951
}
3052
}

0 commit comments

Comments
 (0)