我目前正在使用《 Sierra and Bates学习指南》寻求SCJP认证,并且在许多自测(模拟考试问题)中,我一直遇到相同的问题-我无法确定某个错误是否会在运行时出现(异常)或编译时(编译错误)。我知道这是一个模糊的问题,可能无法回答,但是,如何确定在编译时还是在运行时会发现错误?您能否向我发送一些可能对我有帮助的网站链接?

最佳答案

编译时错误-Java编译器通常由于语法错误而无法编译代码。典型候选人:

  • 缺少括号
  • 缺少分号
  • 访问其他类中的私有(private)字段
  • 缺少类路径上的类(在编译时)

  • 运行时错误-代码已编译,可以执行,但在某些时候崩溃,例如您被零除。
  • 使用实际上是null的变量(可能会导致NullPointerException)
  • 在数组
  • 上使用非法索引
  • 访问当前不可用的资源(缺少文件,...)
  • 缺少类路径上的类(在运行时)


  • (“崩溃”实际上不是正确的术语,仅用于说明发生的情况)

    10-06 13:02
    查看更多