En este artículo, discutiremos cómo manejar las excepciones usando clases .
Manejo de excepciones:
- Las excepciones son anomalías en tiempo de ejecución o condiciones anormales que encuentra un programa durante su ejecución.
- Hay dos tipos de excepciones:
- Excepción síncrona
- Excepción asíncrona (Ej: que están fuera del control del programa, falla del disco, etc.).
- C++ proporciona las siguientes palabras clave especializadas para este propósito:
- try : representa un bloque de código que puede lanzar una excepción.
- catch : representa un bloque de código que se ejecuta cuando se lanza una excepción particular.
- throw : Se usa para lanzar una excepción. También se usa para enumerar las excepciones que lanza una función, pero que no se maneja sola.
Planteamiento del problema:
- Cree una clase Números que tenga dos miembros de datos a y b .
- Escribe funciones iterativas para encontrar el MCD de dos números .
- Escribe una función iterativa para verificar si un número dado es primo o no. Si se determina que es verdadero , lanza una excepción a la clase MyPrimeException .
- Defina su propia clase MyPrimeException .
Solución:
- Defina una clase llamada Number que tenga dos miembros de datos privados como a y b .
- Defina dos funciones miembro como:
- int gcd(): para calcular el HCF de los dos números .
- bool isPrime(): para verificar si el número dado es primo o no .
- Utilice el constructor que se utiliza para inicializar los miembros de datos.
- Tome otra clase llamada Temporal que se llamará cuando se produzca una excepción.
A continuación se muestra la implementación para ilustrar el concepto de manejo de excepciones usando clases:
C++
// C++ program to illustrate the concept // of exception handling using class #include <bits/stdc++.h> using namespace std; // Class declaration class Number { private: int a, b; public: // Constructors Number(int x, int y) { a = x; b = y; } // Function that find the GCD // of two numbers a and b int gcd() { // While a is not equal to b while (a != b) { // Update a to a - b if (a > b) a = a - b; // Otherwise, update b else b = b - a; } // Return the resultant GCD return a; } // Function to check if the // given number is prime bool isPrime(int n) { // Base Case if (n <= 1) return false; // Iterate over the range [2, N] for (int i = 2; i < n; i++) { // If n has more than 2 // factors, then return // false if (n % i == 0) return false; } // Return true return true; } }; // Empty class class MyPrimeException { }; // Driver Code int main() { int x = 13, y = 56; Number num1(x, y); // Print the GCD of X and Y cout << "GCD is = " << num1.gcd() << endl; // If X is prime if (num1.isPrime(x)) cout << x << " is a prime number" << endl; // If Y is prime if (num1.isPrime(y)) cout << y << " is a prime number" << endl; // Exception Handling if ((num1.isPrime(x)) || (num1.isPrime(y))) { // Try Block try { throw MyPrimeException(); } // Catch Block catch (MyPrimeException t) { cout << "Caught exception " << "of MyPrimeException " << "class." << endl; } } return 0; }
Producción:
GCD is = 1 13 is a prime number Caught exception of MyPrimeException class.
Publicación traducida automáticamente
Artículo escrito por nileshkumar4872 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA