Programa C para mostrar excepciones de tiempo de ejecución

Las excepciones de tiempo de ejecución se producen mientras se ejecuta el programa. Aquí, el proceso de compilación será exitoso. Estos errores ocurren debido a fallas de segmentación y cuando un número se divide por un operador de división o un operador de división de módulo.

Tipos de errores de tiempo de ejecución:

  1. Un acceso de memoria inválido 
  2. Dividiendo por cero. 
  3. Fallos de segmentación  
  4. Asignación de memoria grande/Asignación de memoria estática grande 
  5. Cometer errores comunes. 

1. Durante el tiempo de ejecución, un acceso de memoria no válido  

Se produce un error de acceso a la memoria no válido durante el tiempo de ejecución cuando al índice de la array se le asigna un valor negativo. 

Nota: La salida puede cambiar cada vez que ejecutamos este programa porque da un valor basura a cambio de la ubicación no válida.

C

// C program to demonstrate
// an invalid memory access error
#include <stdio.h>
int a[5];
int main()
{
    int s = a[-11];
    printf("%d", s);
    return 0;
}
Producción

32746

2. Dividir por cero

Cuando estamos tratando de dividir cualquier número por cero, obtenemos este tipo de error llamado errores de coma flotante.

C

// C program to demonstrate
// an error occurred by dividng 0
#include <stdio.h>
 
int main()
{
    int a = 5;
    printf("%d", a / 0);
    return 0;
}

Producción:

Dividir por salida de error cero

Error de dividir por cero

3. Fallos de segmentación

Consideremos una array de longitud 5, es decir, array [5], pero durante el tiempo de ejecución, si intentamos acceder a 10 elementos, es decir, array [10], obtenemos errores de falla de segmentación llamados errores de tiempo de ejecución. Dando solo una longitud de array de 5

C

// C program to demonstrate
// an error of segmentation faults
#include <stdio.h>
 
int main()
{
    int GFG[5];
    GFG[10] = 10;
    return 0;
}

Pero en la salida que intenta acceder a más de 5, es decir, si intentamos acceder a la array [10] durante el tiempo de ejecución, obtenemos un error 

Producción:

Error de falla de segmentación

Error de falla de segmentación

4. Gran asignación de memoria/Gran asignación de memoria estática: 

En general, todos los jueces en línea permiten hasta 10^8. Sin embargo, para estar seguro, use hasta 10 ^ 7 a menos que sea necesario. En el siguiente ejemplo, hemos mencionado más de 10 ^ 8, por lo que provocará un error debido a una gran asignación de memoria.

C

// C program to demonstrate
// an error of large memory allocation
#include <stdio.h>
 
int main()
{
    int GFG[10000000000];
    printf("%d", GFG);
    return 0;
}

Producción: 

Salida de error de asignación de memoria grande

Error de asignación de memoria grande

5. Cometer errores comunes: 

El siguiente código da un error de tiempo de ejecución porque hemos declarado una variable como long int pero en scanf hemos usado %d en lugar de %ld. Por lo tanto, dará un error.

C

// C program to demonstrate
// a common error
#include <stdio.h>
 
int main()
{
    long int GFG;
    scanf("%d", &GFG);
    return 0;
}

Producción: 

Salida de error común

Error común

Publicación traducida automáticamente

Artículo escrito por laxmigangarajula03 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *