table_builder: check for OverflowErrors upfront so we can print offending glyph name
diff --git a/Lib/fontTools/colorLib/table_builder.py b/Lib/fontTools/colorLib/table_builder.py
index 763115b..506e7db 100644
--- a/Lib/fontTools/colorLib/table_builder.py
+++ b/Lib/fontTools/colorLib/table_builder.py
@@ -5,10 +5,12 @@
 
 import collections
 import enum
+import struct
 from fontTools.ttLib.tables.otBase import (
     BaseTable,
     FormatSwitchingBaseTable,
     UInt8FormatSwitchingBaseTable,
+    OTTableWriter,
 )
 from fontTools.ttLib.tables.otConverters import (
     ComputedInt,
@@ -86,6 +88,7 @@
         if callbackTable is None:
             callbackTable = {}
         self._callbackTable = callbackTable
+        self._dummy_writer = OTTableWriter()
 
     def _convert(self, dest, field, converter, value):
         enumClass = getattr(converter, "enumClass", None)
@@ -118,6 +121,14 @@
         elif callable(converter):
             value = converter(value)
 
+        if isinstance(converter, (IntValue, FloatValue)):
+            try:
+                converter.write(
+                    self._dummy_writer, font=None, tableDict=None, value=value
+                )
+            except (AssertionError, struct.error) as e:
+                raise OverflowError(value) from e
+
         setattr(dest, field, value)
 
     def build(self, cls, source):