【发布时间】:2022-01-14 22:38:41
【问题描述】:
这是一个人为的例子。我有一个非 void 方法,它会引发异常。为什么我不必事后返回一个值?毕竟,方法是非无效的。
public static Toast makeText(Context context, CharSequence text, int duration) {
throw new RuntimeException("Stub!");
//Must return something from here but there is not, Why?
}
【问题讨论】:
-
该方法总是无条件地以异常结束。以异常结束的方法没有返回值,因为它抛出了异常。我建议您学习 Java 中异常的基础知识以及如何处理它们。
-
你在哪里使用这个方法!
-
嗨。我建议你谷歌“函数中的 return 语句如何工作”。当你有基本的想法时,你应该谷歌“抛出和处理异常”。互联网上有大量信息。祝你好运!
-
异常进入一个特殊的控制流并结束常规的方法控制流。该方法是 exit,Java 会遍历调用堆栈,直到找到捕获此异常事件的 try-catch。如果没有找到,程序结束。特别是,该方法不继续,因为它没有“正常”结束,所以它也没有返回任何值。
-
@Zabuzard 首先感谢您编辑标题,因为我的标题不清楚。正如你所说,我将研究 Java 中的异常,因为我不记得我做过这样的事情。谢谢。