Back to: C Tutorials For Beginners and Professionals
Error Handling in C Program with Examples
In this article, I am going to discuss Error Handling in C Program with Examples. Please read our previous article where we discussed File Handling in C Program. Handling Error is the most important thing in all programming languages. At the end of this article, you will understand how to handle errors in the C programming language.
Error Handling in C Program:
There is no direct support for Error Handling in C language. However, using the return statement in a function, there are few methods and variables defined in error.h header file that can be used to point out the error. A programmer has to prevent errors in the first place before testing return values from the functions. In C, the function return NULL or -1 value in case of any error. There is a global variable errno which sets the error code/number. Hence, while programming the return value can be used to check error.
What is errno?
When a function is called in C, a variable named errno is automatically assigned a code (value) which can be used to identify the type of error that has been encountered. It is a global variable indicating the error occurred during any function call and defined in the header file errno.h.
List of few different errno values and its corresponding meaning:

Example:
#include <stdio.h>
#include <errno.h>
int main ()
{
FILE *fp;
fp = fopen ("File.txt", "r");
printf (" Value of errno: %d\n ", errno);
return 0;
}
Output:
![]()
Functions used to display a text message associated with errorno
perror(): It returns the string you pass to it, followed by a colon, a space, and then the textual representation of the current errno value.
Syntax: void perror (const char *str) where str is a string containing a message to be printed.
strerror(): It returns a pointer to the textual representation of the current errno value.
Syntax: char *strerror (int errnum) where errnum is the error number.
Example
#include <stdio.h>
#include <errno.h>
#include <string.h>
int main ()
{
FILE *fp;
fp = fopen (" File.txt ", "r");
printf ("Value of errno: %d\n", errno);
printf ("The error message is : %s\n", strerror (errno));
perror ("Message from perror");
return 0;
}
Output:

Divide by Zero Error in C Program
Sometimes at the time of dividing any number, programmers do not check if a divisor is zero and finally it creates a runtime error. Because C Language cannot do anything about it. All you can do is, avoid it.
Example
#include<stdio.h>
#include <stdlib.h>
void function (int);
int main ()
{
int x = 0;
function (x);
return 0;
}
void function (int x)
{
float fx;
if (x == 0)
{
printf ("Division by Zero is not allowed \n");
fprintf (stderr, "Division by zero! Exiting...\n");
exit (EXIT_FAILURE);
}
else
{
fx = 10 / x;
printf ("f(x) is: %.5f", fx);
}
}
Output:

Exit Status
The Exit Status constants are used in the exit() function to inform the calling function about the error. EXIT_SUCCESS and EXIT_FAILURE are the two constant values available for use. These are macros defined in stdlib.h which indicates successful or unsuccessful termination, respectively.
Example
#include <stdio.h>
#include <errno.h>
#include <string.h>
#include <stdlib.h>
int main ()
{
FILE *fp;
fp = fopen ("filedoesnotexist.txt", "rb");
if (fp == NULL)
{
printf ("Value of errno: %d\n", errno);
printf ("Error opening the file: %s\n", strerror (errno));
perror ("Error printed by perror");
exit (EXIT_FAILURE);
printf ("I will not be printed\n");
}
else
{
fclose (fp);
exit (EXIT_SUCCESS);
printf ("I will not be printed\n");
}
return 0;
}
Output:

Here, in this article, I try to explain Error Handling in C Program with Examples. I hope you enjoy this Error Handling in C Language article. I would like to have your feedback. Please post your feedback, question, or comments about this Error Handling in C article.
