我目前正在使用 Sierra 和 Bates 学习指南学习 SCJP 认证,并且在许多自测(模拟考试问题)中我一直遇到同样的问题 - 我无法判断是否会出现特定错误运行时(异常)或编译时(编译错误)。我知道这是一个有点模糊的问题,可能无法回答,但是,我如何判断是否会在编译时或运行时发现错误?你能给我发一些可能对我有帮助的网站链接吗?
最佳答案
编译时错误 - java 编译器无法编译代码,通常是因为语法错误。典型候选人:
- 缺少括号
- 缺少分号
- 访问其他类中的私有(private)字段
- 类路径中缺少类(在编译时)
运行时错误 - 代码已编译,可以执行,但在某些时候崩溃,就像除以零一样。
- 使用实际上是
null
的变量(可能导致 NullPointerException) - 在数组上使用非法索引
- 访问当前不可用的资源(丢失文件,...)
- 类路径中缺少类(在运行时)
(“崩溃”确实不是正确的术语,仅用于说明发生的情况)
关于Java - 什么时候是编译器错误,什么时候是运行时异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3179504/