Java - 什么时候是编译器错误,什么时候是运行时异常?

标签 java exception compilation scjp

我目前正在使用 Sierra 和 Bates 学习指南学习 SCJP 认证,并且在许多自测(模拟考试问题)中我一直遇到同样的问题 - 我无法判断是否会出现特定错误运行时(异常)或编译时(编译错误)。我知道这是一个有点模糊的问题,可能无法回答,但是,我如何判断是否会在编译时或运行时发现错误?你能给我发一些可能对我有帮助的网站链接吗?

最佳答案

编译时错误 - java 编译器无法编译代码,通常是因为语法错误。典型候选人:

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

运行时错误 - 代码已编译,可以执行,但在某些时候崩溃,就像除以零一样。

  • 使用实际上是 null 的变量(可能导致 NullPointerException)
  • 在数组上使用非法索引
  • 访问当前不可用的资源(丢失文件,...)
  • 类路径中缺少类(在运行时)

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

关于Java - 什么时候是编译器错误,什么时候是运行时异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3179504/

相关文章:

java - 如何在需要时停止或终止java中的while循环

python - 为单个函数声明异常类型是否合理?

C++ 不在构造函数定义中命名类型

c++ - 在 linux 中编译简单的 C++ 程序(第一次)

java - 从文件中读取并选择按价格对存储的对象数组进行排序不起作用

java - 在 android 中使用 group by 和 content provider 进行计数

java - 如何构建分布式 Java 应用程序?

java - 如何修复 "HTTP Status 500- Servlet exception threw an exception"

Javascript:如何默认记录异常并继续执行?

python - 编译器找不到 Python.h