我正在使用 Utility 类,该类中的一个方法接受内容 ( String
) 和 id ( int
) 作为参数,转换内容并将其返回给客户端。
我正在验证输入(内容不能为空,id 必须为正),在这个阶段我不确定如果其中一些期望未得到满足该怎么办。最好返回原始的、未修改的内容 String
或者抛出一个适当的异常,告诉客户端输入无效?
public String prepareContent(String content, long taskItemId) {
if (Validator.notBlank(content) == false || Validator.isPositive(taskItemId) == false) {
// what to do here? return content or throw an exception?
}
// some modification stuff....
return content;
}
处理这些情况的最佳方法是什么?
编辑:例如 replace Apache StringUtils 库中的方法返回未修改的原始值,而不是引发异常。这样做的目的是什么?
public static String replace(String text, String searchString, String replacement, int max) {
if (isEmpty(text) || isEmpty(searchString) || replacement == null || max == 0) {
return text;
}
// omitted...
}
最佳答案
当一个错误的参数被传递到你的方法中时,约定是抛出一个IllegalArgumentException
(这是一个RuntimeException
) - 请参阅API了解详细信息 - 您也可以根据自己的喜好进行扩展。
返回未修改的内容可能不是一个好主意,因为它可能会导致处理链进一步出现错误。
但是,如果该操作允许返回的Object
在引用或值上等于参数,例如当找不到替换参数时,您可能想返回该参数。
最终,您的方法的良好 javadoc 规范将克服您的实现可能导致的任何歧义。
关于java - 何时抛出异常以及何时返回未修改的原始参数值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23151013/