Programming Errors

Paul Ngugi - Apr 22 - - Dev Community

Programming errors can be categorized into three types: syntax errors, runtime errors, and logic errors.

Syntax Errors

Errors that are detected by the compiler are called syntax errors or compile errors. Syntax errors result from errors in code construction, such as mistyping a keyword, omitting some necessary punctuation, or using an opening brace without a corresponding closing brace. These errors are usually easy to detect because the compiler tells you where they are and what caused them.

public class ShowSyntaxErrors {
 public static main(String[] args) {
 System.out.println("Welcome to Java);
 }
}
Enter fullscreen mode Exit fullscreen mode

Four errors are reported, but the program actually has two errors:

  • The keyword void is missing before main in line 2.
  • The string Welcome to Java should be closed with a closing quotation mark in line 3.

Since a single error will often display many lines of compile errors, it is a good practice to fix errors from the top line and work downward. Fixing errors that occur earlier in the program may also fix additional errors that occur later.

Runtime Errors

Runtime errors are errors that cause a program to terminate abnormally. They occur while a program is running if the environment detects an operation that is impossible to carry out.
Input mistakes typically cause runtime errors. An input error occurs when the program is waiting for the user to enter a value, but the user enters a value that the program cannot handle. For instance, if the program expects to read in a number, but instead the user enters a string, this causes data-type errors to occur in the program. Another example of runtime errors is division by zero. This happens when the divisor is zero for integer divisions

public class ShowRuntimeErrors {
 public static void main(String[] args) {
 System.out.println(1 / 0);
 }
}
Enter fullscreen mode Exit fullscreen mode

Logic Errors

Logic errors occur when a program does not perform the way it was intended to. Errors of this kind occur for many different reasons. For example, suppose you wrote the program to convert Celsius 35 degrees to a Fahrenheit degree:

public class ShowLogicErrors {
 public static void main(String[] args) {
 System.out.println("Celsius 35 is Fahrenheit degree ");
 System.out.println((9 / 5) * 35 + 32);
 }
}
Enter fullscreen mode Exit fullscreen mode
Celsius 35 is Fahrenheit degree
67
Enter fullscreen mode Exit fullscreen mode

You will get Fahrenheit 67 degrees, which is wrong. It should be 95.0. In Java, the division for integers is the quotient—the fractional part is truncated—so in Java 9 / 5 is 1. To get the correct result, you need to use 9.0 / 5, which results in 1.8.

In general, syntax errors are easy to find and easy to correct because the compiler gives indications as to where the errors came from and why they are wrong. Runtime errors are not difficult to find, either, since the reasons and locations for the errors are displayed on the console when the program aborts. Finding logic errors, on the other hand, can be very challenging.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .