这是一段代码.
private boolean CheckTerm()
{
String str = lGskCompoundNumber;
if (lPrefix.trim() == "" || lNumber.trim() == "")
return false;
try
{
Integer.parseInt(lNumber);
}
catch (Exception ex)
{
return false;
}
if (lHasAmpersand)
str = lGskCompoundNumber.replace("&", "");
return str.equals(lPrefix + lInitSep + lNumber + lEndSep + lSuffix);
}
Run Code Online (Sandbox Code Playgroud)
我应该从catch块返回某个值还是使用权?
这段代码是正确的,看起来并不可疑.解析失败时(请注意,您应该捕获可能的最窄的异常,NumberFormatException
在这种情况下),整个验证失败,因此您将返回false
.否则,您将执行其他检查(在catch
块之后)并返回其结果.这段代码很好.
如果您发现它有点难以阅读,请考虑以下重构:
private boolean checkTerm() {
try
{
String str = lGskCompoundNumber;
if (lPrefix.trim() == "" || lNumber.trim() == "")
return false;
Integer.parseInt(lNumber);
if (lHasAmpersand)
str = lGskCompoundNumber.replace("&", "");
return str.equals(lPrefix + lInitSep + lNumber + lEndSep + lSuffix);
}
catch (NumberFormatException ex)
{
return false;
}
}
Run Code Online (Sandbox Code Playgroud)