diff options
author | Jesse Plamondon-Willard <Pathoschild@users.noreply.github.com> | 2019-12-15 00:33:08 -0500 |
---|---|---|
committer | Jesse Plamondon-Willard <Pathoschild@users.noreply.github.com> | 2019-12-15 00:33:08 -0500 |
commit | d662ea858c4914eefe5a0b0f911d1f41086b0424 (patch) | |
tree | 8fef340e4fcf587a42213b21e2db9f641ecd72a4 | |
parent | 18a5b07c5ba277e4ea424228a9148e498e0361fa (diff) | |
download | SMAPI-d662ea858c4914eefe5a0b0f911d1f41086b0424.tar.gz SMAPI-d662ea858c4914eefe5a0b0f911d1f41086b0424.tar.bz2 SMAPI-d662ea858c4914eefe5a0b0f911d1f41086b0424.zip |
improve error message for TargetParameterCountException in the reflection API
-rw-r--r-- | docs/release-notes.md | 1 | ||||
-rw-r--r-- | src/SMAPI/Framework/Reflection/ReflectedMethod.cs | 4 |
2 files changed, 5 insertions, 0 deletions
diff --git a/docs/release-notes.md b/docs/release-notes.md index 0185d1ec..dc38710a 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -11,6 +11,7 @@ * For modders: * Added asset propagation for grass textures. * Added asset propagation for `Data\Bundles` changes (for added bundles only). + * Improved error messages for `TargetParameterCountException` when using the reflection API. * `helper.Read/WriteSaveData` can now be used while a save is being loaded (e.g. within a `Specialized.LoadStageChanged` event). * Fixed private textures loaded from content packs not having their `Name` field set. diff --git a/src/SMAPI/Framework/Reflection/ReflectedMethod.cs b/src/SMAPI/Framework/Reflection/ReflectedMethod.cs index 039f27c3..82737a7f 100644 --- a/src/SMAPI/Framework/Reflection/ReflectedMethod.cs +++ b/src/SMAPI/Framework/Reflection/ReflectedMethod.cs @@ -65,6 +65,10 @@ namespace StardewModdingAPI.Framework.Reflection { result = this.MethodInfo.Invoke(this.Parent, arguments); } + catch (TargetParameterCountException) + { + throw new Exception($"Couldn't invoke the {this.DisplayName} method: it expects {this.MethodInfo.GetParameters().Length} parameters, but {arguments.Length} were provided."); + } catch (Exception ex) { throw new Exception($"Couldn't invoke the {this.DisplayName} method", ex); |