Difference between Compile Time Errors and Runtime Errors

Compile-Time Errors: Errors that occur when you violate the rules of writing syntax are known as Compile-Time errors. This compiler error indicates something that must be fixed before the code can be compiled. All these errors are detected by the compiler and thus are known as compile-time errors.
Most frequent Compile-Time errors are:

  • Missing Parenthesis (})
  • Printing the value of variable without declaring it
  • Missing semicolon (terminator)

Below is an example to demonstrate Compile-Time Error:

filter_none

edit
close

play_arrow

link
brightness_4
code

// C program to illustrate
// syntax error
  
#include<stdio.h>
  
void main()
{
    int x = 10;
    int y = 15; 
      
// semicolon missed
    printf("%d", (x, y)) 
}

chevron_right


Error:

error: expected ';' before '}' token

Run-Time Errors: Errors which occur during program execution(run-time) after successful compilation are called run-time errors. One of the most common run-time error is division by zero also known as Division error. These types of error are hard to find as the compiler doesn’t point to the line at which the error occurs.

For more understanding run the example given below.

filter_none

edit
close

play_arrow

link
brightness_4
code

// C program to illustrate
// run-time error
  
#include<stdio.h>
  
void main()
{
    int n = 9, div = 0;
    
    // wrong logic
    // number is divided by 0,
    // so this program abnormally terminates
    div = n/0;
      
    printf("resut = %d", div);
}

chevron_right


Error:

warning: division by zero [-Wdiv-by-zero]
     div = n/0;

In the given example, there is Division by zero error. This is an example of run-time error i.e errors occurring while running the program.

The Differences between Compile-Time and Run-Time Error are:

Compile-Time Errors Runtime-Errors
These are the syntax errors which are detected by the compiler. These are the errors which are not detected by the compiler and produce wrong results.
They prevent the code from running as it detects some syntax errors. They prevent the code from complete execution.
It includes syntax errors such as missing of semicolon(;), misspelling of keywords and identifiers etc. It includes errors such as dividing a number by zero, finding square root of a negative number etc.


My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.