The language compiler complains about an unreported exception Throwable; must be caught or declared to be thrown in using both InvokeDynamic and the (invisible) MethodHandle.invoke() Why is this so? What about an (unchecked) RuntimeException instead?