In Java, errors can be categorized into three main types:
1. Compile-time Errors
- These are errors that occur during the compilation process. The Java compiler detects these errors and prevents the program from compiling successfully.
- Types of Compile-time Errors:
- Syntax Errors: These are errors in the code structure, such as missing semicolons, parentheses, or incorrect keywords. Example:
public class Example { public static void main(String[] args) { System.out.println("Hello, World!") } }
(Missing semicolon at the end of the
println
statement.) - Type Checking Errors: These errors occur when the data types do not match. For example, trying to assign an integer value to a string variable.
String str = 10; // Error: Incompatible types
- Missing Methods or Classes: Errors when you try to call a method that doesn’t exist or use an undefined class.
- Syntax Errors: These are errors in the code structure, such as missing semicolons, parentheses, or incorrect keywords. Example:
2. Runtime Errors
- These are errors that occur while the program is running. Unlike compile-time errors, runtime errors do not stop the program from compiling, but they cause the program to terminate unexpectedly.
- Types of Runtime Errors:
- NullPointerException: Occurs when an application tries to use an object reference that has not been initialized.
String str = null; System.out.println(str.length()); // NullPointerException
- ArithmeticException: Happens when an illegal arithmetic operation occurs, such as dividing by zero.
int x = 5 / 0; // ArithmeticException
- ArrayIndexOutOfBoundsException: Happens when an invalid index is accessed in an array.
int[] arr = new int[5]; System.out.println(arr[10]); // ArrayIndexOutOfBoundsException
- ClassCastException: Occurs when an invalid cast between types is attempted.
Object obj = "Hello"; Integer num = (Integer) obj; // ClassCastException
- NullPointerException: Occurs when an application tries to use an object reference that has not been initialized.
3. Logical Errors
- These errors occur when the program runs without crashing but produces incorrect results. These are often harder to detect because the program doesn’t necessarily stop, but the output is wrong.
- Types of Logical Errors:
- Incorrect Calculation: Performing wrong mathematical operations or logic.
int a = 5; int b = 10; int sum = a - b; // Logical error if sum should be a + b
- Incorrect Conditions: Using the wrong comparison or logic in control structures like
if
statements, leading to unexpected behavior.if (x > 10) { // some logic } else if (x < 10) { // some other logic } // Missing logic for when x == 10
- Infinite Loops: A loop that never terminates because the terminating condition is never satisfied.
while (true) { // Infinite loop, logic may be incorrect }
- Incorrect Calculation: Performing wrong mathematical operations or logic.
4. Errors (Java Errors)
- These are more serious issues that arise from the environment the program is running in. They are typically not recoverable by the program, and handling them is usually not recommended.
- Examples:
- OutOfMemoryError: Happens when the JVM runs out of memory.
- StackOverflowError: Occurs when the stack overflows, often due to deep or infinite recursion.
Each type of error requires a different approach for handling, from fixing syntax or logical issues to adding exception handling for runtime errors.