这听起来可能很尴尬。
但我不明白。
为什么java中有compile-time error而不是compile-time exception呢?
我是说我们从来没有说过compile-time exception.
我们倾向于把它称为compile-time error。
有什么特别的原因吗?
欢迎任何建议..。
谢谢!
发布于 2010-05-22 15:28:57
其原因是,异常是在执行程序期间抛出的东西。Java有一个特定的类型,即Exception类。
在编译时,您的代码没有执行,所以它不能抛出异常。实际上,正确地执行编译器来查找代码中的错误--当然不是例外情况!
发布于 2010-05-22 15:29:10
java中的异常实际上与编译错误不同。我们没有术语编译时异常。因为例外是发生了一些你不希望它发生的事情。我们只检查和未检查异常。除了选中的异常,在编译时,编译器将强制您捕获它,但它是而不是错误。不要抓住它,你不能编译程序,但它不是编译错误。
发布于 2010-05-22 15:47:04
错误表示程序有问题。异常是一个特定的构造,它中断程序的控制流,并展开堆栈,捕获有关堆栈状态的信息,以便报告。
异常可用于指示错误,但并非总是如此。例如:
void startOperation() {
try {
while (someComplexOperationIsOnGoing()) {
checkRestart();
}
}
catch (RestartException re) {
startOperation();
}
}
void checkRestart() {
if (shouldRestart()) {
throw new RestartException();
}
}此不完整的代码示例旨在显示异常不是错误的情况。这并不总是最佳实践;但在某些情况下使用它,目的是中断程序中的控制流(例如,在响应HTTP请求时,在web框架中重定向页面),并将控制返回到堆栈的较高级别。术语exception指中断程序的机制。
在java中,有一个异常类封装了这个行为。Error类也以与异常相同的方式中断控制流;但它仅为运行时发生的严重、不可恢复的问题保留。例如,当JVM耗尽内存而不能创建新对象时,就会使用它。
https://stackoverflow.com/questions/2888636
复制相似问题