diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/reflect/kotlin/KClassUtil.java b/hutool-core/src/main/java/org/dromara/hutool/core/reflect/kotlin/KClassUtil.java index 83f370e70..5ef7479f0 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/reflect/kotlin/KClassUtil.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/reflect/kotlin/KClassUtil.java @@ -108,9 +108,17 @@ public class KClassUtil { @SuppressWarnings("unchecked") public static T newInstance(final Class targetType, final ValueProvider valueProvider) { final List constructors = getConstructors(targetType); + RuntimeException exception = null; for (final Object constructor : constructors) { final Object[] parameterValues = getParameterValues(constructor, valueProvider); - return (T) KCallable.call(constructor, parameterValues); + try { + return (T) KCallable.call(constructor, parameterValues); + } catch (RuntimeException e) { + exception = e; + } + } + if (exception != null) { + throw exception; } return null; }