Tipos de errores en Java con ejemplos

El error es una operación ilegal realizada por el usuario que resulta en el funcionamiento anormal del programa. Los errores de programación a menudo pasan desapercibidos hasta que el programa se compila o ejecuta. Algunos de los errores impiden que el programa se compile o ejecute. Por lo tanto, los errores deben eliminarse antes de compilar y ejecutar. 

Los errores más comunes se pueden clasificar en términos generales de la siguiente manera:

1. Error de tiempo de ejecución: 

Los errores de Run Time ocurren o podemos decir, se detectan durante la ejecución del programa. A veces, estos se descubren cuando el usuario ingresa datos no válidos o datos que no son relevantes. Los errores de tiempo de ejecución ocurren cuando un programa no contiene ningún error de sintaxis pero le pide a la computadora que haga algo que la computadora no puede hacer de manera confiable. Durante la compilación, el compilador no tiene ninguna técnica para detectar este tipo de errores. Es la JVM (Java Virtual Machine) la que lo detecta mientras se ejecuta el programa. Para manejar el error durante el tiempo de ejecución, podemos poner nuestro código de error dentro del bloque try y detectar el error dentro del bloque catch. 

Por ejemplo: si el usuario ingresa un dato en formato de string cuando la computadora espera un número entero, habrá un error de tiempo de ejecución. Ejemplo 1: Error de tiempo de ejecución causado por dividir por cero 

Java

// Java program to demonstrate Runtime Error
 
class DivByZero {
    public static void main(String args[])
    {
        int var1 = 15;
        int var2 = 5;
        int var3 = 0;
        int ans1 = var1 / var2;
 
        // This statement causes a runtime error,
        // as 15 is getting divided by 0 here
        int ans2 = var1 / var3;
 
        System.out.println(
            "Division of va1"
            + " by var2 is: "
            + ans1);
        System.out.println(
            "Division of va1"
            + " by var3 is: "
            + ans2);
    }
}

Error de tiempo de ejecución en código java:

Exception in thread "main" java.lang.ArithmeticException: / by zero
    at DivByZero.main(File.java:14)

Ejemplo 2: error de tiempo de ejecución causado por la asignación/recuperación de valor de una array utilizando un índice que es mayor que el tamaño de la array 

Java

class RTErrorDemo {
    public static void main(String args[])
    {
        int arr[] = new int[5];
 
        // Array size is 5
        // whereas this statement assigns
 
        // value 250 at the 10th position.
        arr[9] = 250;
 
        System.out.println("Value assigned! ");
    }
}

Error de tiempo de ejecución en código java:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 9
    at RTErrorDemo.main(File.java:10)

2. Error de tiempo de compilación: 

Los errores de tiempo de compilación son aquellos errores que impiden que el código se ejecute debido a una sintaxis incorrecta, como la falta de un punto y coma al final de una declaración o la falta de un corchete, la clase no encontrada, etc. Estos errores son detectados por el compilador java y un error El mensaje se muestra en la pantalla durante la compilación. Los errores de tiempo de compilación a veces también se denominan errores de sintaxis.. Este tipo de errores son fáciles de detectar y corregir porque el compilador de Java los encuentra por usted. El compilador le dirá qué parte del código del programa tuvo problemas y su mejor estimación de lo que hizo mal. Por lo general, el compilador indica la línea exacta donde está el error o, a veces, la línea justo antes de ella; sin embargo, si el problema se debe a llaves anidadas incorrectamente, el error real puede estar al principio del bloque. En efecto, los errores de sintaxis representan errores gramaticales en el uso del lenguaje de programación. 

Ejemplo 1: nombre de variable o nombre de método mal escrito 

Java

class MisspelledVar {
    public static void main(String args[])
    {
        int a = 40, b = 60;
 
        // Declared variable Sum with Capital S
        int Sum = a + b;
 
        // Trying to call variable Sum
        // with a small s ie. sum
        System.out.println(
            "Sum of variables is "
            + sum);
    }
}

Error de compilación en código java:

prog.java:14: error: cannot find symbol
            + sum);
              ^
  symbol:   variable sum
  location: class MisspelledVar
1 error

Ejemplo 2: Faltan puntos y comas 

Java

class PrintingSentence {
    public static void main(String args[])
    {
        String s = "GeeksforGeeks";
 
        // Missing ';' at the end
        System.out.println("Welcome to " + s)
    }
}

Error de compilación en código java:

prog.java:8: error: ';' expected
        System.out.println("Welcome to " + s)
                                             ^
1 error

Ejemplo: faltan paréntesis, corchetes o llaves 

Java

class MissingParenthesis {
    public static void main(String args[])
    {
        System.out.println("Printing 1 to 5 \n");
        int i;
 
        // missing parenthesis, should have
        // been for(i=1; i<=5; i++)
        for (i = 1; i <= 5; i++ {
 
            System.out.println(i + "\n");
        } // for loop ends
 
    } // main ends
} // class ends

Error de compilación en código java:

prog.java:10: error: ')' expected
        for (i = 1; i <= 5; i++ {
                               ^
1 error

Ejemplo: formato incorrecto de sentencias de selección o bucles 

Java

class IncorrectLoop {
    public static void main(String args[])
    {
 
        System.out.println("Multiplication Table of 7");
        int a = 7, ans;
        int i;
 
        // Should have been
        // for(i=1; i<=10; i++)
        for (i = 1, i <= 10; i++) {
            ans = a * i;
            System.out.println(ans + "\n");
        }
    }
}

Error de compilación en código java:

prog.java:12: error: not a statement
        for (i = 1, i <= 10; i++) {
                      ^
prog.java:12: error: ';' expected
        for (i = 1, i <= 10; i++) {
                                ^
2 errors

Error lógico: un error lógico es cuando su programa se compila y ejecuta, pero hace lo incorrecto o devuelve un resultado incorrecto o no produce ningún resultado cuando debería estar devolviendo un resultado. Estos errores no son detectados ni por el compilador ni por JVM. El sistema Java no tiene idea de lo que se supone que debe hacer su programa, por lo que no proporciona información adicional para ayudarlo a encontrar el error. Los errores lógicos también se denominan errores semánticos. Estos errores se deben a una idea o concepto incorrecto utilizado por un programador durante la codificación. Los errores de sintaxis son errores gramaticales, mientras que los errores lógicos son errores que surgen de un significado incorrecto. Por ejemplo, si un programador agrega accidentalmente dos variables cuando tenía la intención de dividirlas, el programa no dará ningún error y se ejecutará con éxito pero con un resultado incorrecto. 

Ejemplo: usar accidentalmente un operador incorrecto en las variables para realizar una operación (Usar el operador ‘/’ para obtener el módulo en lugar de usar ‘%’) 

Java

public class LErrorDemo {
    public static void main(String[] args)
    {
        int num = 789;
        int reversednum = 0;
        int remainder;
 
        while (num != 0) {
 
            // to obtain modulus % sign should
            // have been used instead of /
            remainder = num / 10;
            reversednum
                = reversednum * 10
                  + remainder;
            num /= 10;
        }
        System.out.println("Reversed number is "
                           + reversednum);
    }
}
Producción:

Reversed number is 7870

Ejemplo: Mostrar el mensaje incorrecto 

Java

class IncorrectMessage {
    public static void main(String args[])
    {
        int a = 2, b = 8, c = 6;
        System.out.println(
            "Finding the largest number \n");
 
        if (a > b && a > c)
            System.out.println(
                a + " is the largest Number");
        else if (b > a && b > c)
            System.out.println(
                b + " is the smallest Number");
 
        // The correct message should have
        // been System.out.println
        //(b+" is the largest Number");
        // to make logic
        else
            System.out.println(
                c + " is the largest Number");
    }
}
Producción:

Finding the largest number 

8 is the smallest Number

Error de sintaxis:

Los programadores enfrentan errores de sintaxis y lógica.

Los errores ortográficos o gramaticales son errores de sintaxis, por ejemplo, usar una variable no inicializada, usar una variable indefinida, etc., perder un punto y coma, etc.

int x, y;
x = 10 // missing semicolon (;)
z = x + y; // z is undefined, y in uninitialized.

Los errores de sintaxis se pueden eliminar con la ayuda del compilador.

Publicación traducida automáticamente

Artículo escrito por Sonal_Singh 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 *