SlideShare a Scribd company logo
ALGORITHMS AND COMPUTING ( LAB )
END SEMESTER PRESENTATIONS
GROUP C
PRESENTATION CONTENTS
     • Team/Topic Introduction
     • Errors & its Types
     • Exception Handling Basics
     • Occurrence & Handling of an Exception ( Flow diagrams )
     • Methods to handle an Exception
     • Example Program 1 ( DL 1)
     • Causes of Exception Occurrence
     • Example Program 2 ( DL 2)
     • Example Program 3 ( DL 3)
     • Grading
     • Q/A Session
GROUP MEMBERS:
    • Raza Najam
    • Hassaan Idrees
    • Waleed Raza
    • Syed Ahmed Fuad
    • Tanveer Hussain
    • Hassan Qamar Rana
PRESENTATION CONTENTS
           • Team/Topic Introduction
           • Errors & its Types
 Hassaan   • Exception Handling Basics
           • Occurrence & Handling of an Exception ( Flow diagrams )
    Raza   • Methods to handle an Exception
    Fuad   • Example Program 1 ( DL 1)
 Tanveer   • Causes of Exception Occurrence
 Waleed    • Example Program 2 ( DL 2)
    Raza
           • Example Program 3 ( DL 3)
           • Grading
           • Q/A Session
PRESENTATION CONTENTS
     • Team/Topic Introduction
     • Errors & its Types
     • Exception Handling Basics
     • Occurrence & Handling of an Exception ( Flow diagrams )
     • Methods to handle an Exception
     • Example Program 1 ( DL 1)
     • Causes of Exception Occurrence
     • Example Program 2 ( DL 2)
     • Example Program 3 ( DL 3)
     • Grading
     • Q/A Session
ERRORS AND ITS TYPES

• There are three basic types of errors:
         1- Syntax Error
         2- Semantic Errors
         3- Logical Errors
  These errors are detected by the ‘C’ compiler

• There are also a few kinds of errors in ‘C’ those are not detected by the
compiler.
         4- Run Time Errors
         5- Compile Time Errors
  These error are not identified by the compiler and so they are termed
as “EXCEPTIONS”
PRESENTATION CONTENTS
     • Team/Topic Introduction
     • Errors & its Types
     • Exception Handling Basics
     • Occurrence & Handling of an Exception ( Flow diagrams )
     • Methods to handle an Exception
     • Example Program 1 ( DL 1)
     • Causes of Exception Occurrence
     • Example Program 2 ( DL 2)
     • Example Program 3 ( DL 3)
     • Grading
     • Q/A Session
WHAT IS REALLY AN EXCEPTION?
• An exception is an indication of a problem that occurs during a program’s
 execution.
• Exception is a runtime problem that occurs rarely
 handling an exception allows programs to continue executing as if no
 problem had been encountered.
• Helps terminating the program in a controlled manner rather in an
 unpredictable fashion
• Exception handling enables programmers to create applications that can
 resolve (or handle) exceptions.
DIFFERENCES BETWEEN AN ERROR AND AN EXCEPTION
1- Errors occur at compilation time as well as run time while exceptions
mostly occur at run time.
2- Compile time errors are detected by the compiler while exceptions need
to be predicted by the programmer himself
3- Errors occur frequently while exceptions, as the name suggests occur
seldom
4- Error detection and debugging is easier while exception prediction and
its handling is a bit complex procedure
5- Errors can be removed by removing syntax and logical mistakes while
exception handling needs pre-defined or user defined procedures.
BENEFITS:
• Helps improve a program's fault tolerance.
• Enables the programmer to remove error-handling code from the ‘main
line’ of the program’s execution
• Programmers can decide to handle any exceptions they choose – all
exceptions of a certain type or all exceptions of a group of related types
PRESENTATION CONTENTS
     • Team/Topic Introduction
     • Errors & its Types
     • Exception Handling Basics
     • Occurrence & Handling of an Exception ( Flow diagrams )
     • Methods to handle an Exception
     • Example Program 1 ( DL 1)
     • Causes of Exception Occurrence
     • Example Program 2 ( DL 2)
     • Example Program 3 ( DL 3)
     • Grading
     • Q/A Session
EXCEPTION HANDLING IN C
• C does not provide direct support for error/exception handling.
• By convention, the programmer is expected to develop an algorithm for
an error and exception case free program.
• Intelligent visualization skills and prediction of end-user actions on a
particular event prevents errors from occurring in the first place.
• The programmer is expected to test return values from a function.
Exception handling is designed to:
   Process synchronous errors, which occur when a statement executes.
   Common examples of these errors are:
        1. out-of-range array subscripts
        2. arithmetic overflow
        3. division by zero
        4. invalid function parameters
        5. unsuccessful memory allocation, due to lack of memory
Exception handling is not designed to:
   Process errors associated with asynchronous events fro example:
        1. Disk I/O completions
        2. Network message arrivals
        3. Mouse-clicks and keystrokes
   which occur in parallel with, and independent of, the program’s flow
   control.
HOW TO HANDLE AN EXCEPTION:
-   Ignore the exception
                           (Non – Professional )
-   Abort the program
                           ( Even Worst )
-   Set error indicators
                          ( Beginner’s Approach )
-   Issue an error-message and call exit().
                          ( Non – Feasible )
-   Use setjmp() and longjmp()
                          ( Leading to Professional)
THE CLASSIC ‘C’ APPROACH TO EXCEPTION HANDLING.
• Each function returns a value indicating success or failure.
• Every function must check the return code of every function call it
  makes and take care of errors.
• Exceptions make it easy to separate error handling from the rest of
  the code.
• Exceptions make it easy to separate error handling from the rest of
  the code.
• Intermediate functions can completely ignore errors occurring in
  functions they call, if they can't handle them anyway
Main body
{
Any program…

                   Program Pauses and control is
Exception Occurs   shifted to some other function



Further program


End of   program   Now the user defined function
                   decides what to do with that
                   particular exception
}
PRESENTATION CONTENTS
     • Team/Topic Introduction
     • Errors & its Types
     • Exception Handling Basics
     • Occurrence & Handling of an Exception ( Flow diagrams )
     • Methods to handle an Exception
     • Example Program 1 ( DL 1)
     • Causes of Exception Occurrence
     • Example Program 2 ( DL 2)
     • Example Program 3 ( DL 3)
     • Grading
     • Q/A Session
METHODS OF EXCEPTION HANDLING

There are two methods to handle an exception in C.
1- if - else method
2- setjmp() and longjmp() method
METHODS OF EXCEPTION HANDLING

1- if - else method
     • Exception is handled by making decisions via if – else.
     • Occurrence of an exception is checked by the return
     values of a function or by defined parameters.
     • Along with that condition is placed an if – else statement
     that checks and performs the respective action against
     that exception.
METHODS OF EXCEPTION HANDLING
1- if - else method
    main()
    {
    code…
    code…
    EXCEPTION
    if (n==exception condition)
             printf(“Operation cannot be performed”);
             /*here we have to decide whether to exit the program or to
             ignore the exception and run the program anyway */
    else
             continue
    code…
    }
METHODS OF EXCEPTION HANDLING
2- setjmp () and longjmp() method:
    • setjmp() and longjmp() are used to jump away from a
    particular location in a program into another function.
    • The programmer written code, inside that function
    handles the exception
    • To test the occurrence of an exception the setjmp()
    function is called up.
    • setjmp() saves the most recent event of the program
    before that statement in a buffer called jmp_buf.
METHODS OF EXCEPTION HANDLING
2- setjmp () and longjmp() method:
    • As soon as the exception test is complete the setjmp()
    returns a value to the function.
    • If the value returned from the setjmp() to the longjmp()
    is ‘0’ it means that there was an exception condition.
    • Now the program will again start from the same point
    where it stopped (saved in the buffer), until the exception
    condition is removed or repaired.
    • On the other hand programmer can also display error
    messages or other fool-proof techniques.
PRESENTATION CONTENTS
     • Team/Topic Introduction
     • Errors & its Types
     • Exception Handling Basics
     • Occurrence & Handling of an Exception ( Flow diagrams )
     • Methods to handle an Exception
     • Programs Difficulty Level 1
     • Causes of Exception Occurrence
     • Programs Difficulty Level 2
     • Programs Difficulty Level 3
     • Grading
     • Q/A Session
PROGRAM DIFFICULTY LEVEL 1

PROGRAM 1:

      #include <stdio.h>
       void main (void)
      {
               int a , b , c ;
               a=1;
               b=0;
               c=a/b
               printf(“%d”,c);
       }
#include <stdio.h> /* for fprintf and stderr */
#include <stdlib.h> /* for exit */                                                  PROGRAM 2
int main( void )                                                                          DL 1
{
  float dividend = 50;
  float divisor ;
  float quotient;

    printf("Enter a divisor for a dividend of 50nn");
    scanf("%f", &divisor);
    if (divisor == 0)
     {
       /* Example handling of this error. Writing a message to stderr, and
        * exiting with failure.
        */
                 fprintf(stderr, "nnDivision by zero !!! Aborting... ={ nn");
       exit(EXIT_FAILURE); /* indicate failure.*/
     }


    quotient = (dividend/divisor);
    printf("n%.2fnn",quotient);
    exit(EXIT_SUCCESS); /* indicate success.*/
}
#include <setjmp.h>
#include <stdio.h>                                                           PROGRAM 3
#include <stdlib.h>
void main(void)
                                                                                   DL 1
{
  float dividend = 50;
  float divisor ;
  float quotient;
  jmp_buf env;


    printf("Enter a divisor for a dividend of 50nn");
    setjump(env);                                         Stores the scanf() statement in a buffer
    scanf("%f", &divisor);

    if (divisor == 0)                                     Exceptional Case
     longjmp(env,2);                                      Throws back to where we paused

    quotient = (dividend/divisor);
    printf("n%.2fnn",quotient);
    exit(EXIT_SUCCESS); /* indicate success.*/

    return 0;
}
PRESENTATION CONTENTS
     • Team/Topic Introduction
     • Errors & its Types
     • Exception Handling Basics
     • Occurrence & Handling of an Exception ( Flow diagrams )
     • Methods to handle an Exception
     • Programs Difficulty Level 1
     • Causes of Exception Occurrence
     • Programs Difficulty Level 2
     • Programs Difficulty Level 3
     • Grading
     • Q/A Session
CAUSES OF EXCEPTION HANDLING
Exception Class               Cause
ArgumentException             An argument to a method was invalid.
                              A null argument was passed to a method that
ArgumentNullException
                              doesn't accept it.
ArgumentOutOfRangeException   Argument value is out of range.
ArithmeticException           Arithmetic over - or underflow has occurred.
                              Attempt to store the wrong type of object in an
ArrayTypeMismatchException
                              array.
DivideByZeroException         An attempt was made to divide by zero.
FormatException               The format of an argument is wrong.
NotFiniteNumberException      A number is not valid.
NullReferenceException        Attempt to use an unassigned reference.
OutOfMemoryException          Not enough memory to continue execution.
PRESENTATION CONTENTS
     • Team/Topic Introduction
     • Errors & its Types
     • Exception Handling Basics
     • Occurrence & Handling of an Exception ( Flow diagrams )
     • Methods to handle an Exception
     • Programs Difficulty Level 1
     • Causes of Exception Occurrence
     • Programs Difficulty Level 2
     • Programs Difficulty Level 3
     • Grading
     • Q/A Session
#include <stdio.h>      /* fprintf */
#include <errno.h>       /* errno */                                     PROGRAM 1
#include <stdlib.h>
#include <string.h>
                        /* malloc, free, exit */
                        /* strerror */
                                                                               DL 2
extern int errno;
int main( void )
{
  /* pointer to char, requesting dynamic allocation of 2,000,000,000
   * storage elements (declared as an integer constant of type
   * unsigned long int). (If your system has less than 2GB of memory
   * available, then this call to malloc will fail)
   */
  char *ptr = malloc( 2000000000 );

    if ( ptr == NULL )
       puts("malloc failed");
    else
    {
       /* the rest of the code hereafter can assume that 2,000,000,000
        * chars were successfully allocated...
        */
       free( ptr );
    }

    exit(EXIT_SUCCESS); /* exiting program */
}
PRESENTATION CONTENTS
     • Team/Topic Introduction
     • Errors & its Types
     • Exception Handling Basics
     • Occurrence & Handling of an Exception ( Flow diagrams )
     • Methods to handle an Exception
     • Programs Difficulty Level 1
     • Causes of Exception Occurrence
     • Programs Difficulty Level 2
     • Programs Difficulty Level 3
     • Grading
     • Q/A Session
PROGRAM 1
      DL 3
PRESENTATION CONTENTS
     • Team/Topic Introduction
     • Errors & its Types
     • Exception Handling Basics
     • Occurrence & Handling of an Exception ( Flow diagrams )
     • Methods to handle an Exception
     • Programs Difficulty Level 1
     • Causes of Exception Occurrence
     • Programs Difficulty Level 2
     • Programs Difficulty Level 3
     • Grading
     • Q/A Session
GROUP C GRADING
Group leader: Raza Najam

Members Name    Searching Teamwork PPT Skills Willing to C Presentation Skills Total/10
                   10        10       10           10              10              5
Hassaan Idrees          8         8         7             7                   8       3.8
Syed Ahmed Fuad         8         8         5             9                   7       3.7
Tanveer Hussain         8         8         5             6                   5       3.2
Waleed Raza             7         7         5             5                   4       2.8
Hasan Qamar         -         -        -            -               -               -
Q/A
Ad

Recommended

07. Virtual Functions
07. Virtual Functions
Haresh Jaiswal
 
Control statements in c
Control statements in c
Sathish Narayanan
 
Conditional statement c++
Conditional statement c++
amber chaudary
 
FUNCTIONS IN c++ PPT
FUNCTIONS IN c++ PPT
03062679929
 
Dbms and rdbms ppt
Dbms and rdbms ppt
rahul kapoliya
 
Exception Handling in JAVA
Exception Handling in JAVA
SURIT DATTA
 
PHP HTML CSS Notes
PHP HTML CSS Notes
Tushar Rajput
 
Virtual base class
Virtual base class
Tech_MX
 
C++ oop
C++ oop
Sunil OS
 
SQL Basics
SQL Basics
Hammad Rasheed
 
Loaders and Linkers
Loaders and Linkers
kunj desai
 
Javascript
Javascript
mussawir20
 
Dbms architecture
Dbms architecture
Shubham Dwivedi
 
classes and objects in C++
classes and objects in C++
HalaiHansaika
 
Input and output in C++
Input and output in C++
Nilesh Dalvi
 
10. switch case
10. switch case
Way2itech
 
Command line arguments
Command line arguments
Ashok Raj
 
Android datastorage
Android datastorage
Krazy Koder
 
Control Statements in Java
Control Statements in Java
Niloy Saha
 
Data structures
Data structures
MADHAVASAIYENDUVA
 
Unit 1 of c++ part 1 basic introduction
Unit 1 of c++ part 1 basic introduction
AKR Education
 
SQLITE Android
SQLITE Android
Sourabh Sahu
 
C# operators
C# operators
baabtra.com - No. 1 supplier of quality freshers
 
Unix vs linux
Unix vs linux
bhatvijetha
 
ANGULAR JS LAB MANUAL(final) vtu2021 sch
ANGULAR JS LAB MANUAL(final) vtu2021 sch
kannikadg
 
html-table
html-table
Dhirendra Chauhan
 
C++ Class & object pointer in c++ programming language
C++ Class & object pointer in c++ programming language
HariTharshiniBscIT1
 
Functions in C++
Functions in C++
Nikhil Pandit
 
Lecture 22 - Error Handling
Lecture 22 - Error Handling
Md. Imran Hossain Showrov
 
Exception handling
Exception handling
zindadili
 

More Related Content

What's hot (20)

C++ oop
C++ oop
Sunil OS
 
SQL Basics
SQL Basics
Hammad Rasheed
 
Loaders and Linkers
Loaders and Linkers
kunj desai
 
Javascript
Javascript
mussawir20
 
Dbms architecture
Dbms architecture
Shubham Dwivedi
 
classes and objects in C++
classes and objects in C++
HalaiHansaika
 
Input and output in C++
Input and output in C++
Nilesh Dalvi
 
10. switch case
10. switch case
Way2itech
 
Command line arguments
Command line arguments
Ashok Raj
 
Android datastorage
Android datastorage
Krazy Koder
 
Control Statements in Java
Control Statements in Java
Niloy Saha
 
Data structures
Data structures
MADHAVASAIYENDUVA
 
Unit 1 of c++ part 1 basic introduction
Unit 1 of c++ part 1 basic introduction
AKR Education
 
SQLITE Android
SQLITE Android
Sourabh Sahu
 
C# operators
C# operators
baabtra.com - No. 1 supplier of quality freshers
 
Unix vs linux
Unix vs linux
bhatvijetha
 
ANGULAR JS LAB MANUAL(final) vtu2021 sch
ANGULAR JS LAB MANUAL(final) vtu2021 sch
kannikadg
 
html-table
html-table
Dhirendra Chauhan
 
C++ Class & object pointer in c++ programming language
C++ Class & object pointer in c++ programming language
HariTharshiniBscIT1
 
Functions in C++
Functions in C++
Nikhil Pandit
 

Similar to Exception handling in c programming (20)

Lecture 22 - Error Handling
Lecture 22 - Error Handling
Md. Imran Hossain Showrov
 
Exception handling
Exception handling
zindadili
 
Exception handling c++
Exception handling c++
Jayant Dalvi
 
Exception handling
Exception handling
Waqas Abbasi
 
F6dc1 session6 c++
F6dc1 session6 c++
Mukund Trivedi
 
Exception handling and templates
Exception handling and templates
farhan amjad
 
Exception_Handling_in_C__1701342048430.ppt
Exception_Handling_in_C__1701342048430.ppt
arunkumarg271
 
Maheen oop
Maheen oop
mahshah212
 
Exception handling
Exception handling
Abhishek Pachisia
 
Exception Handling
Exception Handling
Alpesh Oza
 
WINSEM2016-17_CSE1002_LO_1336_24-JAN-2017_RM003_session 10.pptx
WINSEM2016-17_CSE1002_LO_1336_24-JAN-2017_RM003_session 10.pptx
ssusercd11c4
 
Handling Exceptions In C &amp; C++[Part A]
Handling Exceptions In C &amp; C++[Part A]
ppd1961
 
Exceptions and Exception Handling in C++
Exceptions and Exception Handling in C++
IRJET Journal
 
Introduction of exception in vb.net
Introduction of exception in vb.net
suraj pandey
 
22 scheme OOPs with C++ BCS306B_module5.pdf
22 scheme OOPs with C++ BCS306B_module5.pdf
sindhus795217
 
Lecture 3.1.1 Try Throw Catch.pptx
Lecture 3.1.1 Try Throw Catch.pptx
sunilsoni446112
 
exception handling
exception handling
rajshreemuthiah
 
Web technology
Web technology
Siva Priya
 
Exception Handling in C++
Exception Handling in C++
Deepak Tathe
 
Lecture 1 Try Throw Catch.pptx
Lecture 1 Try Throw Catch.pptx
VishuSaini22
 
Exception handling
Exception handling
zindadili
 
Exception handling c++
Exception handling c++
Jayant Dalvi
 
Exception handling
Exception handling
Waqas Abbasi
 
Exception handling and templates
Exception handling and templates
farhan amjad
 
Exception_Handling_in_C__1701342048430.ppt
Exception_Handling_in_C__1701342048430.ppt
arunkumarg271
 
Exception Handling
Exception Handling
Alpesh Oza
 
WINSEM2016-17_CSE1002_LO_1336_24-JAN-2017_RM003_session 10.pptx
WINSEM2016-17_CSE1002_LO_1336_24-JAN-2017_RM003_session 10.pptx
ssusercd11c4
 
Handling Exceptions In C &amp; C++[Part A]
Handling Exceptions In C &amp; C++[Part A]
ppd1961
 
Exceptions and Exception Handling in C++
Exceptions and Exception Handling in C++
IRJET Journal
 
Introduction of exception in vb.net
Introduction of exception in vb.net
suraj pandey
 
22 scheme OOPs with C++ BCS306B_module5.pdf
22 scheme OOPs with C++ BCS306B_module5.pdf
sindhus795217
 
Lecture 3.1.1 Try Throw Catch.pptx
Lecture 3.1.1 Try Throw Catch.pptx
sunilsoni446112
 
Web technology
Web technology
Siva Priya
 
Exception Handling in C++
Exception Handling in C++
Deepak Tathe
 
Lecture 1 Try Throw Catch.pptx
Lecture 1 Try Throw Catch.pptx
VishuSaini22
 
Ad

Recently uploaded (20)

ENERGY CONSUMPTION CALCULATION IN ENERGY-EFFICIENT AIR CONDITIONER.pdf
ENERGY CONSUMPTION CALCULATION IN ENERGY-EFFICIENT AIR CONDITIONER.pdf
Muhammad Rizwan Akram
 
OpenACC and Open Hackathons Monthly Highlights June 2025
OpenACC and Open Hackathons Monthly Highlights June 2025
OpenACC
 
FME for Distribution & Transmission Integrity Management Program (DIMP & TIMP)
FME for Distribution & Transmission Integrity Management Program (DIMP & TIMP)
Safe Software
 
MuleSoft for AgentForce : Topic Center and API Catalog
MuleSoft for AgentForce : Topic Center and API Catalog
shyamraj55
 
Enabling BIM / GIS integrations with Other Systems with FME
Enabling BIM / GIS integrations with Other Systems with FME
Safe Software
 
FIDO Seminar: Authentication for a Billion Consumers - Amazon.pptx
FIDO Seminar: Authentication for a Billion Consumers - Amazon.pptx
FIDO Alliance
 
Tech-ASan: Two-stage check for Address Sanitizer - Yixuan Cao.pdf
Tech-ASan: Two-stage check for Address Sanitizer - Yixuan Cao.pdf
caoyixuan2019
 
Creating Inclusive Digital Learning with AI: A Smarter, Fairer Future
Creating Inclusive Digital Learning with AI: A Smarter, Fairer Future
Impelsys Inc.
 
Securing Account Lifecycles in the Age of Deepfakes.pptx
Securing Account Lifecycles in the Age of Deepfakes.pptx
FIDO Alliance
 
No-Code Workflows for CAD & 3D Data: Scaling AI-Driven Infrastructure
No-Code Workflows for CAD & 3D Data: Scaling AI-Driven Infrastructure
Safe Software
 
June Patch Tuesday
June Patch Tuesday
Ivanti
 
From Manual to Auto Searching- FME in the Driver's Seat
From Manual to Auto Searching- FME in the Driver's Seat
Safe Software
 
Connecting Data and Intelligence: The Role of FME in Machine Learning
Connecting Data and Intelligence: The Role of FME in Machine Learning
Safe Software
 
Artificial Intelligence in the Nonprofit Boardroom.pdf
Artificial Intelligence in the Nonprofit Boardroom.pdf
OnBoard
 
Crypto Super 500 - 14th Report - June2025.pdf
Crypto Super 500 - 14th Report - June2025.pdf
Stephen Perrenod
 
Python Conference Singapore - 19 Jun 2025
Python Conference Singapore - 19 Jun 2025
ninefyi
 
"Database isolation: how we deal with hundreds of direct connections to the d...
"Database isolation: how we deal with hundreds of direct connections to the d...
Fwdays
 
Can We Use Rust to Develop Extensions for PostgreSQL? (POSETTE: An Event for ...
Can We Use Rust to Develop Extensions for PostgreSQL? (POSETTE: An Event for ...
NTT DATA Technology & Innovation
 
Powering Multi-Page Web Applications Using Flow Apps and FME Data Streaming
Powering Multi-Page Web Applications Using Flow Apps and FME Data Streaming
Safe Software
 
“Key Requirements to Successfully Implement Generative AI in Edge Devices—Opt...
“Key Requirements to Successfully Implement Generative AI in Edge Devices—Opt...
Edge AI and Vision Alliance
 
ENERGY CONSUMPTION CALCULATION IN ENERGY-EFFICIENT AIR CONDITIONER.pdf
ENERGY CONSUMPTION CALCULATION IN ENERGY-EFFICIENT AIR CONDITIONER.pdf
Muhammad Rizwan Akram
 
OpenACC and Open Hackathons Monthly Highlights June 2025
OpenACC and Open Hackathons Monthly Highlights June 2025
OpenACC
 
FME for Distribution & Transmission Integrity Management Program (DIMP & TIMP)
FME for Distribution & Transmission Integrity Management Program (DIMP & TIMP)
Safe Software
 
MuleSoft for AgentForce : Topic Center and API Catalog
MuleSoft for AgentForce : Topic Center and API Catalog
shyamraj55
 
Enabling BIM / GIS integrations with Other Systems with FME
Enabling BIM / GIS integrations with Other Systems with FME
Safe Software
 
FIDO Seminar: Authentication for a Billion Consumers - Amazon.pptx
FIDO Seminar: Authentication for a Billion Consumers - Amazon.pptx
FIDO Alliance
 
Tech-ASan: Two-stage check for Address Sanitizer - Yixuan Cao.pdf
Tech-ASan: Two-stage check for Address Sanitizer - Yixuan Cao.pdf
caoyixuan2019
 
Creating Inclusive Digital Learning with AI: A Smarter, Fairer Future
Creating Inclusive Digital Learning with AI: A Smarter, Fairer Future
Impelsys Inc.
 
Securing Account Lifecycles in the Age of Deepfakes.pptx
Securing Account Lifecycles in the Age of Deepfakes.pptx
FIDO Alliance
 
No-Code Workflows for CAD & 3D Data: Scaling AI-Driven Infrastructure
No-Code Workflows for CAD & 3D Data: Scaling AI-Driven Infrastructure
Safe Software
 
June Patch Tuesday
June Patch Tuesday
Ivanti
 
From Manual to Auto Searching- FME in the Driver's Seat
From Manual to Auto Searching- FME in the Driver's Seat
Safe Software
 
Connecting Data and Intelligence: The Role of FME in Machine Learning
Connecting Data and Intelligence: The Role of FME in Machine Learning
Safe Software
 
Artificial Intelligence in the Nonprofit Boardroom.pdf
Artificial Intelligence in the Nonprofit Boardroom.pdf
OnBoard
 
Crypto Super 500 - 14th Report - June2025.pdf
Crypto Super 500 - 14th Report - June2025.pdf
Stephen Perrenod
 
Python Conference Singapore - 19 Jun 2025
Python Conference Singapore - 19 Jun 2025
ninefyi
 
"Database isolation: how we deal with hundreds of direct connections to the d...
"Database isolation: how we deal with hundreds of direct connections to the d...
Fwdays
 
Can We Use Rust to Develop Extensions for PostgreSQL? (POSETTE: An Event for ...
Can We Use Rust to Develop Extensions for PostgreSQL? (POSETTE: An Event for ...
NTT DATA Technology & Innovation
 
Powering Multi-Page Web Applications Using Flow Apps and FME Data Streaming
Powering Multi-Page Web Applications Using Flow Apps and FME Data Streaming
Safe Software
 
“Key Requirements to Successfully Implement Generative AI in Edge Devices—Opt...
“Key Requirements to Successfully Implement Generative AI in Edge Devices—Opt...
Edge AI and Vision Alliance
 
Ad

Exception handling in c programming

  • 1. ALGORITHMS AND COMPUTING ( LAB ) END SEMESTER PRESENTATIONS GROUP C
  • 2. PRESENTATION CONTENTS • Team/Topic Introduction • Errors & its Types • Exception Handling Basics • Occurrence & Handling of an Exception ( Flow diagrams ) • Methods to handle an Exception • Example Program 1 ( DL 1) • Causes of Exception Occurrence • Example Program 2 ( DL 2) • Example Program 3 ( DL 3) • Grading • Q/A Session
  • 3. GROUP MEMBERS: • Raza Najam • Hassaan Idrees • Waleed Raza • Syed Ahmed Fuad • Tanveer Hussain • Hassan Qamar Rana
  • 4. PRESENTATION CONTENTS • Team/Topic Introduction • Errors & its Types Hassaan • Exception Handling Basics • Occurrence & Handling of an Exception ( Flow diagrams ) Raza • Methods to handle an Exception Fuad • Example Program 1 ( DL 1) Tanveer • Causes of Exception Occurrence Waleed • Example Program 2 ( DL 2) Raza • Example Program 3 ( DL 3) • Grading • Q/A Session
  • 5. PRESENTATION CONTENTS • Team/Topic Introduction • Errors & its Types • Exception Handling Basics • Occurrence & Handling of an Exception ( Flow diagrams ) • Methods to handle an Exception • Example Program 1 ( DL 1) • Causes of Exception Occurrence • Example Program 2 ( DL 2) • Example Program 3 ( DL 3) • Grading • Q/A Session
  • 6. ERRORS AND ITS TYPES • There are three basic types of errors: 1- Syntax Error 2- Semantic Errors 3- Logical Errors These errors are detected by the ‘C’ compiler • There are also a few kinds of errors in ‘C’ those are not detected by the compiler. 4- Run Time Errors 5- Compile Time Errors These error are not identified by the compiler and so they are termed as “EXCEPTIONS”
  • 7. PRESENTATION CONTENTS • Team/Topic Introduction • Errors & its Types • Exception Handling Basics • Occurrence & Handling of an Exception ( Flow diagrams ) • Methods to handle an Exception • Example Program 1 ( DL 1) • Causes of Exception Occurrence • Example Program 2 ( DL 2) • Example Program 3 ( DL 3) • Grading • Q/A Session
  • 8. WHAT IS REALLY AN EXCEPTION? • An exception is an indication of a problem that occurs during a program’s execution. • Exception is a runtime problem that occurs rarely handling an exception allows programs to continue executing as if no problem had been encountered. • Helps terminating the program in a controlled manner rather in an unpredictable fashion • Exception handling enables programmers to create applications that can resolve (or handle) exceptions.
  • 9. DIFFERENCES BETWEEN AN ERROR AND AN EXCEPTION 1- Errors occur at compilation time as well as run time while exceptions mostly occur at run time. 2- Compile time errors are detected by the compiler while exceptions need to be predicted by the programmer himself 3- Errors occur frequently while exceptions, as the name suggests occur seldom 4- Error detection and debugging is easier while exception prediction and its handling is a bit complex procedure 5- Errors can be removed by removing syntax and logical mistakes while exception handling needs pre-defined or user defined procedures.
  • 10. BENEFITS: • Helps improve a program's fault tolerance. • Enables the programmer to remove error-handling code from the ‘main line’ of the program’s execution • Programmers can decide to handle any exceptions they choose – all exceptions of a certain type or all exceptions of a group of related types
  • 11. PRESENTATION CONTENTS • Team/Topic Introduction • Errors & its Types • Exception Handling Basics • Occurrence & Handling of an Exception ( Flow diagrams ) • Methods to handle an Exception • Example Program 1 ( DL 1) • Causes of Exception Occurrence • Example Program 2 ( DL 2) • Example Program 3 ( DL 3) • Grading • Q/A Session
  • 12. EXCEPTION HANDLING IN C • C does not provide direct support for error/exception handling. • By convention, the programmer is expected to develop an algorithm for an error and exception case free program. • Intelligent visualization skills and prediction of end-user actions on a particular event prevents errors from occurring in the first place. • The programmer is expected to test return values from a function.
  • 13. Exception handling is designed to: Process synchronous errors, which occur when a statement executes. Common examples of these errors are: 1. out-of-range array subscripts 2. arithmetic overflow 3. division by zero 4. invalid function parameters 5. unsuccessful memory allocation, due to lack of memory Exception handling is not designed to: Process errors associated with asynchronous events fro example: 1. Disk I/O completions 2. Network message arrivals 3. Mouse-clicks and keystrokes which occur in parallel with, and independent of, the program’s flow control.
  • 14. HOW TO HANDLE AN EXCEPTION: - Ignore the exception (Non – Professional ) - Abort the program ( Even Worst ) - Set error indicators ( Beginner’s Approach ) - Issue an error-message and call exit(). ( Non – Feasible ) - Use setjmp() and longjmp() ( Leading to Professional)
  • 15. THE CLASSIC ‘C’ APPROACH TO EXCEPTION HANDLING. • Each function returns a value indicating success or failure. • Every function must check the return code of every function call it makes and take care of errors. • Exceptions make it easy to separate error handling from the rest of the code. • Exceptions make it easy to separate error handling from the rest of the code. • Intermediate functions can completely ignore errors occurring in functions they call, if they can't handle them anyway
  • 16. Main body { Any program… Program Pauses and control is Exception Occurs shifted to some other function Further program End of program Now the user defined function decides what to do with that particular exception }
  • 17. PRESENTATION CONTENTS • Team/Topic Introduction • Errors & its Types • Exception Handling Basics • Occurrence & Handling of an Exception ( Flow diagrams ) • Methods to handle an Exception • Example Program 1 ( DL 1) • Causes of Exception Occurrence • Example Program 2 ( DL 2) • Example Program 3 ( DL 3) • Grading • Q/A Session
  • 18. METHODS OF EXCEPTION HANDLING There are two methods to handle an exception in C. 1- if - else method 2- setjmp() and longjmp() method
  • 19. METHODS OF EXCEPTION HANDLING 1- if - else method • Exception is handled by making decisions via if – else. • Occurrence of an exception is checked by the return values of a function or by defined parameters. • Along with that condition is placed an if – else statement that checks and performs the respective action against that exception.
  • 20. METHODS OF EXCEPTION HANDLING 1- if - else method main() { code… code… EXCEPTION if (n==exception condition) printf(“Operation cannot be performed”); /*here we have to decide whether to exit the program or to ignore the exception and run the program anyway */ else continue code… }
  • 21. METHODS OF EXCEPTION HANDLING 2- setjmp () and longjmp() method: • setjmp() and longjmp() are used to jump away from a particular location in a program into another function. • The programmer written code, inside that function handles the exception • To test the occurrence of an exception the setjmp() function is called up. • setjmp() saves the most recent event of the program before that statement in a buffer called jmp_buf.
  • 22. METHODS OF EXCEPTION HANDLING 2- setjmp () and longjmp() method: • As soon as the exception test is complete the setjmp() returns a value to the function. • If the value returned from the setjmp() to the longjmp() is ‘0’ it means that there was an exception condition. • Now the program will again start from the same point where it stopped (saved in the buffer), until the exception condition is removed or repaired. • On the other hand programmer can also display error messages or other fool-proof techniques.
  • 23. PRESENTATION CONTENTS • Team/Topic Introduction • Errors & its Types • Exception Handling Basics • Occurrence & Handling of an Exception ( Flow diagrams ) • Methods to handle an Exception • Programs Difficulty Level 1 • Causes of Exception Occurrence • Programs Difficulty Level 2 • Programs Difficulty Level 3 • Grading • Q/A Session
  • 24. PROGRAM DIFFICULTY LEVEL 1 PROGRAM 1: #include <stdio.h> void main (void) { int a , b , c ; a=1; b=0; c=a/b printf(“%d”,c); }
  • 25. #include <stdio.h> /* for fprintf and stderr */ #include <stdlib.h> /* for exit */ PROGRAM 2 int main( void ) DL 1 { float dividend = 50; float divisor ; float quotient; printf("Enter a divisor for a dividend of 50nn"); scanf("%f", &divisor); if (divisor == 0) { /* Example handling of this error. Writing a message to stderr, and * exiting with failure. */ fprintf(stderr, "nnDivision by zero !!! Aborting... ={ nn"); exit(EXIT_FAILURE); /* indicate failure.*/ } quotient = (dividend/divisor); printf("n%.2fnn",quotient); exit(EXIT_SUCCESS); /* indicate success.*/ }
  • 26. #include <setjmp.h> #include <stdio.h> PROGRAM 3 #include <stdlib.h> void main(void) DL 1 { float dividend = 50; float divisor ; float quotient; jmp_buf env; printf("Enter a divisor for a dividend of 50nn"); setjump(env); Stores the scanf() statement in a buffer scanf("%f", &divisor); if (divisor == 0) Exceptional Case longjmp(env,2); Throws back to where we paused quotient = (dividend/divisor); printf("n%.2fnn",quotient); exit(EXIT_SUCCESS); /* indicate success.*/ return 0; }
  • 27. PRESENTATION CONTENTS • Team/Topic Introduction • Errors & its Types • Exception Handling Basics • Occurrence & Handling of an Exception ( Flow diagrams ) • Methods to handle an Exception • Programs Difficulty Level 1 • Causes of Exception Occurrence • Programs Difficulty Level 2 • Programs Difficulty Level 3 • Grading • Q/A Session
  • 28. CAUSES OF EXCEPTION HANDLING Exception Class Cause ArgumentException An argument to a method was invalid. A null argument was passed to a method that ArgumentNullException doesn't accept it. ArgumentOutOfRangeException Argument value is out of range. ArithmeticException Arithmetic over - or underflow has occurred. Attempt to store the wrong type of object in an ArrayTypeMismatchException array. DivideByZeroException An attempt was made to divide by zero. FormatException The format of an argument is wrong. NotFiniteNumberException A number is not valid. NullReferenceException Attempt to use an unassigned reference. OutOfMemoryException Not enough memory to continue execution.
  • 29. PRESENTATION CONTENTS • Team/Topic Introduction • Errors & its Types • Exception Handling Basics • Occurrence & Handling of an Exception ( Flow diagrams ) • Methods to handle an Exception • Programs Difficulty Level 1 • Causes of Exception Occurrence • Programs Difficulty Level 2 • Programs Difficulty Level 3 • Grading • Q/A Session
  • 30. #include <stdio.h> /* fprintf */ #include <errno.h> /* errno */ PROGRAM 1 #include <stdlib.h> #include <string.h> /* malloc, free, exit */ /* strerror */ DL 2 extern int errno; int main( void ) { /* pointer to char, requesting dynamic allocation of 2,000,000,000 * storage elements (declared as an integer constant of type * unsigned long int). (If your system has less than 2GB of memory * available, then this call to malloc will fail) */ char *ptr = malloc( 2000000000 ); if ( ptr == NULL ) puts("malloc failed"); else { /* the rest of the code hereafter can assume that 2,000,000,000 * chars were successfully allocated... */ free( ptr ); } exit(EXIT_SUCCESS); /* exiting program */ }
  • 31. PRESENTATION CONTENTS • Team/Topic Introduction • Errors & its Types • Exception Handling Basics • Occurrence & Handling of an Exception ( Flow diagrams ) • Methods to handle an Exception • Programs Difficulty Level 1 • Causes of Exception Occurrence • Programs Difficulty Level 2 • Programs Difficulty Level 3 • Grading • Q/A Session
  • 32. PROGRAM 1 DL 3
  • 33. PRESENTATION CONTENTS • Team/Topic Introduction • Errors & its Types • Exception Handling Basics • Occurrence & Handling of an Exception ( Flow diagrams ) • Methods to handle an Exception • Programs Difficulty Level 1 • Causes of Exception Occurrence • Programs Difficulty Level 2 • Programs Difficulty Level 3 • Grading • Q/A Session
  • 34. GROUP C GRADING Group leader: Raza Najam Members Name Searching Teamwork PPT Skills Willing to C Presentation Skills Total/10 10 10 10 10 10 5 Hassaan Idrees 8 8 7 7 8 3.8 Syed Ahmed Fuad 8 8 5 9 7 3.7 Tanveer Hussain 8 8 5 6 5 3.2 Waleed Raza 7 7 5 5 4 2.8 Hasan Qamar - - - - - -
  • 35. Q/A