StackStalk
  • Home
  • Java
    • Java Collection
    • Spring Boot Collection
  • Python
    • Python Collection
  • C++
    • C++ Collection
    • Progamming Problems
    • Algorithms
    • Data Structures
    • Design Patterns
  • General
    • Tips and Tricks

Saturday, May 17, 2008

C++ Exception Handling

 May 17, 2008     CPP     No comments   

What is Exception Handling?

  • Exceptions are run-time program anomalies. Exception handling provides a standard mechanism to handle such anomalies.
  • When a exception is raised the normal program execution is suspended until it is handled.
  • Raising of an exception is done by "throw" expression.
  • Handling of an exception is dobe by the "catch" clause.
  • "Try" block groups one or more program statements with one or more catch clauses.
  • Use catch ( ...) to handle all exceptions.

EXAMPLE CODE: Raise and handle an exception by accepting only positive numbers.

#include <iostream>

using namespace std;

// Exception class
class MyException {
    private:
        string iStr;

    public:
        MyException ( string aStr );
        void print ();
};

// User class
class MyObject {
    private:
        int iA;
        int iB;

    public:
        MyObject ( int aa, int bb );
};

MyException::MyException ( string aStr ) {
    iStr = aStr;
}

void MyException::print () {
    cout << iStr << endl;
}

MyObject::MyObject ( int aa, int bb ) {
    iA = aa;
    iB = bb;

    if ( iA <= 0  iB <= 0 ) {
        throw MyException ("Invalid args. Require positive nos.");
    }
}

void main()
{
    cout << "Enter two nos: " << endl;
  
    int arg1, arg2;
    cin >> arg1 >> arg2;

    try {
        MyObject obj(arg1, arg2);
    }
    catch ( MyException& e ) {
        e.print();
        return;
    }

    cout << "Ok" << endl;
}
INPUT1:
Enter two nos:
1 2

OUTPUT1:
OK
INPUT2:
Enter two nos:
10 0

OUTPUT2:
Invalid args. Require positive nos.
Email ThisBlogThis!Share to XShare to Facebook
Newer Post Older Post Home

0 comments:

Post a Comment

Follow @StackStalk
Get new posts by email:
Powered by follow.it

Popular Posts

  • Python FastAPI file upload and download
    In this article, we will look at an example of how to implement a file upload and download API in a Python FastAPI microservice. Example bel...
  • Avro Producer and Consumer with Python using Confluent Kafka
    In this article, we will understand Avro a popular data serialization format in streaming data applications and develop a simple Avro Produc...
  • Monitor Spring Boot App with Micrometer and Prometheus
    Modern distributed applications typically have multiple microservices working together. Ability to monitor and manage aspects like health, m...
  • Server-Sent Events with Spring WebFlux
    In this article we will review the concepts of server-sent events and work on an example using WebFlux. Before getting into this article it ...
  • Accessing the Kubernetes API
    In this article, we will explore the steps required to access the Kubernetes API and overcome common challenges. All operations and communic...
  • Python FastAPI microservice with Okta and OPA
    Authentication (AuthN) and Authorization (AuthZ) is a common challenge when developing microservices. In this article, we will explore how t...
  • Scheduling jobs in Python
    When developing applications and microservices we run into scenarios where there is a need to run scheduled tasks. Examples include performi...
  • Using Tekton to deploy KNative services
    Tekton is a popular open-source framework for building continuous delivery pipelines. Tekton provides a declarative way to define pipelines ...

Copyright © StackStalk