org.mapstruct.ValueMappings 方法的自定义异常

问题描述 投票:0回答:1

在 Mapstruct 环境中,我有一个方法接受 String 并返回 Enum 值。由于 String 可能不在 Enum 列表之外,因此可以将 ValueMappings 方法配置为抛出 IllegalArgumentException

@ValueMappings({
        @ValueMapping(source = "ACTIVE", target = "A"),
        @ValueMapping(source = "INACTIVE", target = "I"),
        @ValueMapping(source = MappingConstants.ANY_REMAINING, target = MappingConstants.THROW_EXCEPTION)
    })
String statusEnumToString(Status status);

有没有办法抛出 CustomArgumentException 而不是 IllegalArgumentException?

mapstruct
1个回答
0
投票

您可以使用

EnumMapping#unexpectedValueMappingException
自定义应抛出的异常。

例如

@ValueMappings({
        @ValueMapping(source = "ACTIVE", target = "A"),
        @ValueMapping(source = "INACTIVE", target = "I"),
        @ValueMapping(source = MappingConstants.ANY_REMAINING, target = MappingConstants.THROW_EXCEPTION)
    })
@EnumMapping(unexpectedValueMappingException = CustomArgumentException.class)
String statusEnumToString(Status status)

您可以在

EnumMapping#unexpectedValueMappingException
Javadoc

中阅读更多相关信息
© www.soinside.com 2019 - 2024. All rights reserved.