public final Object execute(JavaMethodDesc method, Object obj, Object[] args, Object languageContext) { try { return executeImpl(method, obj, args, languageContext); } catch (ClassCastException | NullPointerException e) { // conversion failed by ToJavaNode throw UnsupportedTypeException.raise(args); } catch (InteropException e) { throw e.raise(); } catch (Throwable e) { throw JavaInteropReflect.rethrow(JavaInterop.wrapHostException(languageContext, e)); } }