compile-time

根据词义,是编译时。

常说的compile-time errors发生在我们开发中,代码编译器检查出的错误,一般分为syntax errors(语法错误)和 semantic errors(语义错误)

关于syntax errors,一个例子如下:

int a,b:

本该以 ; 结尾,但是错误的用了,一个很初级的错误。

关于semantic errors,一个例子如下:

当我们为一个变量c赋值。

a+b=c;

实际正确的方式为:

=a+b;

其他runtime错误,如:

String string_common_tip_a='hello';

compiler可能会提示 The variable name 'string_common_tip_a' isn't a lowerCamelCase identifier. 很明显,变量命名是不规范的。


runtime

语义化为运行时的错误,一般为在compile-time时未发现的错误,或者是在运行前不可预期的错误,如:


int a = someApi.get();
int c=1000/a;

// 运行时 a=0,分母为0,造成计算公式非法。
SomeData a=someApi.get();
print(a.someProp);

// a=null。
// 无法获取null的someProp属性。

当然网络问题等也可以造成runtime错误。


结束~~~~


结尾吐槽下,这个博客的文本编辑器又bug,希望可以做下优化。。。。


参考文档:

Compile time vs Runtime - javatpoint