gpt4 book ai didi

java - 这里哪个异常(exception)最合适?

转载 作者:行者123 更新时间:2023-12-02 00:39:35 27 4
gpt4 key购买 nike

我正在实用程序方法中验证来自 ReSTLet URL 的一些输入(这样,如果我采取的行为发生变化,我只更改一个地方,是的)。 legalName 本质上验证该值为字母数字,但我可能很快就会允许使用其他字符。

我尝试让我的异常有意义 - 在这种情况下什么异常是最好的?

public static String getProperty(Request request, String key) {
String value = request.getAttributes().get(key).toString();
// unless something is specifically text, it is a property
if(legalName(value)) return value;
throw new IllegalArgumentException(value);

}

我的想法是:

  • IllegalArgumentException - key 直接导致无效结果
  • IllegalStateException - 我们正在尝试使用不合格的值
  • 也不异常(exception) - 返回一个空字符串并记录发生违规的事实
  • 也不异常(exception) - 删除任何不需要的字符,返回经过清理的字符串,并记录事实

当然,我不是第一个必须先验证输入的人:-)

最佳答案

存储属性时应抛出此类异常,而不是检索属性。检查Restlet validation为此。

如果您希望坚持自己的解决方案:

  • 将该方法重命名为 validateName(..) 并让它抛出异常。如果没有 - 返回该值。
  • javax.validation.ValidationException 看起来是更好的选择,但您可以使用您提到的两个 IllegalXException 中的任何一个。只要确保他们有更详细的消息即可。

关于java - 这里哪个异常(exception)最合适?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6724976/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com