需要澄清有关编译错误和运行时错误的信息

用户27854

我正在从中阅读有关运行时错误和编译错误的信息

运行时vs编译时间,以及java编译是如何进行的?

我可以推断的是,在编译期间,编译器不会检查逻辑,而只会检查语法和拼写错误,以及在运行时检查逻辑的位置以及这些逻辑的实现方式等。例如被零除,内存不足。

因此,如果我的理解是正确的,那么只有在编译阶段才会出现编译错误,而在执行程序时只会出现运行时错误。

例如让我考虑一个简单的程序

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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

有关调试Vue运行时错误的提示

需要澄清有关继承和异常的信息

您如何在编译时访问有关值的运行时类型的信息?

早午餐没有显示有关编译错误的信息

Google Kick Start Tests中的编译错误和运行时错误

与模板实例化有关的编译错误

有关运算符的编译错误[]

C ++:获取与继承和接口有关的编译错误

同时解析JSON-运行时错误的恐慌(与解码有关)

从Go 1.13升级后,使用Go 1.14进行构建时,是什么导致此运行时内部错误有关“先前声明于”的信息?

需要澄清有关 SGD 优化器的信息

运行时错误和编译器错误有什么区别?

为什么某些类型的Set缺少运行时错误而不是编译错误?

DBT 工具:运行时错误编译错误无法呈现

编译错误失败,而不是在运行时抛出“未解决的编译问题”

在运行时获取有关实体的休眠信息

运行时错误与编译时错误

R:循环需要较长的运行时间,有关更好的结构的建议

如何在Intellij中获取有关编译错误的建议

有关无法编码UTF-8的字符的编译错误

如何显示有关错误的信息?

获取有关EventSource错误的信息

通过命令行运行时出现Maven编译错误 - Cucumber Maven Project

Microsoft.AspNet.WebApi.HelpPage版本4.0.30506在运行时出现编译错误

为什么在运行时出现Typescript编译错误?

在nuxt布局中使用动态组件获取运行时编译错误

编译失败;有关详细信息,请参见编译器错误输出。

在编译过程中评估表达式,并将运行时错误视为编译错误

编译并运行时发生错误[NoClassDefFoundError]