我正在从中阅读有关运行时错误和编译错误的信息
我可以推断的是,在编译期间,编译器不会检查逻辑,而只会检查语法和拼写错误,以及在运行时检查逻辑的位置以及这些逻辑的实现方式等。例如被零除,内存不足。
因此,如果我的理解是正确的,那么只有在编译阶段才会出现编译错误,而在执行程序时只会出现运行时错误。
例如让我考虑一个简单的程序
public class Try {
public static void main(String[] args) {
System.out.println("My first program");
}
}
现在,当我在此阶段进行编译(即javac)时,如果产生任何错误,则这些错误称为编译错误,在此期间将检查语法和拼写错误。
在将字节码转换为本地/机器码(ee java)的过程中产生的错误称为运行时错误,在此期间检查程序逻辑。
因此,只能在执行开始时获得编译错误,而仅在第二阶段就可以获取运行时错误(即,将字节码转换为机器码)。
如果我的理解是错误的,请纠正我。
一个简单的例子:
String myString = null;
myString.substring(..)
上面的代码在语法和类型方面是正确的,编译器未显示任何错误。但是,使用此代码执行程序(运行程序)时,会出现明显的运行时错误。编译器不够聪明,无法检测到这些错误,如果您想在开发周期的早期(最好在客户端执行程序:P之前)捕获这些错误,则可以使用诸如静态分析工具之类的工具,或者更好的是,进行自动测试。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句