This was to prevent disrupting the processing due to invalid messages
In Java, catching only RuntimeException was sufficient because any checked-exceptions thrown inside TaskExtractor#extract must be handled by developers explicitly, otherwise compilation fails
However, when developers implement TaskExtractor in Kotlin (or Scala), TaskExtractor#extract would throw non-RuntimeException and developers would easily overlook that
Since there's no concept of checked/unchecked exceptions in these langs
TaskExtractor#extract
RuntimeException
was sufficient because any checked-exceptions thrown insideTaskExtractor#extract
must be handled by developers explicitly, otherwise compilation failsTaskExtractor
in Kotlin (or Scala),TaskExtractor#extract
would throw non-RuntimeException and developers would easily overlook that