Catch, log and continue upon encountering an exception
diff --git a/src/com/google/typography/font/compression/SimpleRunner.java b/src/com/google/typography/font/compression/SimpleRunner.java
index 08089bb..7298293 100644
--- a/src/com/google/typography/font/compression/SimpleRunner.java
+++ b/src/com/google/typography/font/compression/SimpleRunner.java
@@ -36,20 +36,25 @@
private static void run(CompressionStats stats, String[] filenames) throws IOException {
for (String filename : filenames) {
- File file = new File(filename);
- byte[] bytes = Files.toByteArray(file);
- Font font = FONT_FACTORY.loadFonts(bytes)[0];
+ try {
+ File file = new File(filename);
+ byte[] bytes = Files.toByteArray(file);
+ Font font = FONT_FACTORY.loadFonts(bytes)[0];
- byte[] gzip = Experiment.run(font, GZIP);
- byte[] woff2 = Experiment.run(font, WOFF2);
+ byte[] gzip = Experiment.run(font, GZIP);
+ byte[] woff2 = Experiment.run(font, WOFF2);
- stats.add(
- CompressionStats.Stats.builder()
- .setFilename(file.getName())
- .setSize(CompressionStats.Size.ORIGINAL, bytes.length)
- .setSize(CompressionStats.Size.GZIP, gzip.length)
- .setSize(CompressionStats.Size.WOFF2, woff2.length)
- .build());
+ stats.add(
+ CompressionStats.Stats.builder()
+ .setFilename(file.getName())
+ .setSize(CompressionStats.Size.ORIGINAL, bytes.length)
+ .setSize(CompressionStats.Size.GZIP, gzip.length)
+ .setSize(CompressionStats.Size.WOFF2, woff2.length)
+ .build());
+ } catch (Throwable t) {
+ System.err.printf("WARNING: failed to compress: %s\n", filename);
+ t.printStackTrace();
+ }
}
}