所以我得到了一个编译器错误,我丢失了一个返回语句,我已经研究了其他类似的问题,但我仍然对这个问题感到困惑。
public String pop()
{
try
{
if(top == -1)
{
throw new EmptyStackException("The stack is empty!");
}
String x = stack[top];
top--;
return x;
}
catch (EmptyStackException e)
{
System.out.println("The stack is empty!");
}
}
如果之前有人问过这个问题,我会提前道歉,但我已经看过了其他各种问题,我似乎无法弄清楚这一点。
你的问题全在于范围界定
当函数运行时,它会经历两种情况
你的问题在条件二:
如何解决:
只需返回一个空字符串来表示出了问题。
如果异常被捕获,pop
的返回值是多少?此执行路径中没有返回语句。这就是编译器抱怨的原因。
在这种情况下,pop
的调用方需要处理的
的
。不要在pop
方法中捕获emptyStackExc0019
。如果您将其定义为检查异常,则需要声明它抛出的是
。如果您没有抓住它,那么方法将始终返回值或抛出异常,这将使编译器满意。
请注意,可以在
cat
块之后返回值。这也将满足编译器,但是您会返回什么?空?然后调用方必须测试null
,但是调用方也可以捕获的
的
。
下面的Java不工作,因为它缺少一个return语句。我搞不懂怎么了。有什么想法吗? 即使我去掉字符串u,它也会给出相同的错误,如果我添加int usernameLimit,它也会给出相同的错误。
我正在运行这段java代码,遇到一个错误“缺少返回语句”,请帮助。我在windows中使用cmd运行。
问题内容: 在以下方法中,即使通过该方法只有一条路径,并且编译器包含一条语句,编译器也会抱怨 缺少return语句。抑制该错误需要另一条语句。 鉴于Java编译器可以识别无限循环,为什么它也不能处理这种情况?链接的问题提示,但不提供此特定情况的详细信息。 问题答案: JLS14.21,“无法到达的语句”是处理此问题的部分: if语句(是否具有else部分)以异常方式处理。因此,本节末尾将单独讨论。
问题内容: 好了,我正在尝试编写这段代码,但是我一直收到这个愚蠢的错误。我不知道我在做什么错,所以也许你们中的一位专家可以帮助我。 } 问题答案: 在方法if 中,该方法不返回任何值。如果相同 应该是这样的:
} 当我运行这段代码时,我得到以下错误: 我该怎么做来解决这个问题呢? 见下面的条件:给定一个从1到4(含)的数字,返回该数字的一个单词表示。例如,给定2,返回2。如果数字大于4,则返回短语“太大”。如果数字小于1,则返回短语too small。