diff --git a/src/Discord.Net.Interactions/TypeConverters/ComponentInteractions/DefaultValueComponentConverter.cs b/src/Discord.Net.Interactions/TypeConverters/ComponentInteractions/DefaultValueComponentConverter.cs index 9ed82c6ede..3c650b6a25 100644 --- a/src/Discord.Net.Interactions/TypeConverters/ComponentInteractions/DefaultValueComponentConverter.cs +++ b/src/Discord.Net.Interactions/TypeConverters/ComponentInteractions/DefaultValueComponentConverter.cs @@ -17,9 +17,9 @@ public override Task ReadAsync(IInteractionContext context, _ => Task.FromResult(TypeConverterResult.FromError(InteractionCommandError.ConvertFailed, $"{option.Type} doesn't have a convertible value.")) }; } - catch (InvalidCastException castEx) + catch (Exception ex) when (ex is FormatException or InvalidCastException) { - return Task.FromResult(TypeConverterResult.FromError(castEx)); + return Task.FromResult(TypeConverterResult.FromError(ex)); } } } diff --git a/src/Discord.Net.Interactions/TypeConverters/SlashCommands/DefaultValueConverter.cs b/src/Discord.Net.Interactions/TypeConverters/SlashCommands/DefaultValueConverter.cs index 15f6164969..f71fb2dcd2 100644 --- a/src/Discord.Net.Interactions/TypeConverters/SlashCommands/DefaultValueConverter.cs +++ b/src/Discord.Net.Interactions/TypeConverters/SlashCommands/DefaultValueConverter.cs @@ -41,7 +41,6 @@ public override ApplicationCommandOptionType GetDiscordType() public override Task ReadAsync(IInteractionContext context, IApplicationCommandInteractionDataOption option, IServiceProvider services) { object value; - if (option.Value is Optional optional) value = optional.IsSpecified ? optional.Value : default(T); else @@ -52,9 +51,9 @@ public override Task ReadAsync(IInteractionContext context, var converted = Convert.ChangeType(value, typeof(T)); return Task.FromResult(TypeConverterResult.FromSuccess(converted)); } - catch (InvalidCastException castEx) + catch (Exception ex) when (ex is FormatException or InvalidCastException) { - return Task.FromResult(TypeConverterResult.FromError(castEx)); + return Task.FromResult(TypeConverterResult.FromError(ex)); } } } diff --git a/src/Discord.Net.Interactions/TypeReaders/DefaultValueReader.cs b/src/Discord.Net.Interactions/TypeReaders/DefaultValueReader.cs index e833382a6e..d9074952a7 100644 --- a/src/Discord.Net.Interactions/TypeReaders/DefaultValueReader.cs +++ b/src/Discord.Net.Interactions/TypeReaders/DefaultValueReader.cs @@ -13,9 +13,9 @@ public override Task ReadAsync(IInteractionContext context, var converted = Convert.ChangeType(option, typeof(T)); return Task.FromResult(TypeConverterResult.FromSuccess(converted)); } - catch (InvalidCastException castEx) + catch (Exception ex) when (ex is FormatException or InvalidCastException) { - return Task.FromResult(TypeConverterResult.FromError(castEx)); + return Task.FromResult(TypeConverterResult.FromError(ex)); } } }