【发布时间】:2011-05-18 02:06:27
【问题描述】:
我理解这个错误的想法。但我想我不明白这在调用堆栈中是如何工作的。
文件 Main.java:
public static void main(String[] args) {
try {
Function1();
} catch (myException e) {
System.out.println(e.getMessage());
}
}
public static void Function1() {
Function2();
}
Function2 存在于另一个文件中:
文件2.java
public void Function2() throws myException {
....
}
所以通过几次调用(在调用堆栈中),我得到了 Function2,它指定了“抛出 myException”的要求。为什么 main 函数(错误指向的地方)没有识别出我抛出了 myException?
任何关于我的“异常知识”中的“漏洞”所在的指导将不胜感激。
艾蒂,
【问题讨论】:
-
如果 myException 是运行时异常?如果你需要 Function2 抛出 myException,Function1 也应该抛出它。
-
Main 和 File2 类之间的关系是什么? (哪个继承自哪个?)
-
这与您的问题没有直接关系,但我强烈建议遵守命名约定:
Function1和Function2等方法应以小写字母开头,myException等类应该以大写开头。约定让您和其他程序员更好地理解彼此的代码。 -
@Carl Smotricz,我的错。我不熟悉java约定。从现在开始,我会牢记这一点。您知道更多 java 命名约定或一般 java 约定的参考吗?
-
见这里,特别是第 9 节:oracle.com/technetwork/java/codeconvtoc-136057.html
标签: java exception try-catch throws