tiempo sintaxis semánticos semanticos presentan los escritura errores entre ejecucion donde diferencia compilar compilacion algoritmo java compiler-errors

java - sintaxis - ¿Cuál es la diferencia entre el error en tiempo de ejecución y el error del compilador?



errores semanticos en la escritura (10)

Esta pregunta ya tiene una respuesta aquí:

En una de mis diapositivas prof en el ploymorfismo, veo este fragmento de código con un par de comentarios:

discountVariable = //will produce (DiscountSale)saleVariable;//run-time error discountVariable = saleVariable //will produce //compiler error

Como puede ver, dice en la primera sentencia de lanzamiento que producirá un error de tiempo de ejecución y en la otra dice que producirá un error de compilación .

¿Qué hace estos errores? y cómo difieren el uno del otro?


Creo que ya tienes la descripción general de la diferencia. Específicamente en el código que ha mostrado en el OP,

  • En la segunda declaración, el compilador compara los tipos en LHS y RHS y no encuentra posible el reparto implícito, por lo que da el error.
  • El compilador ve el primer enunciado como el mismo, pero aquí el programador expulsa explícitamente el tipo, que es tan bueno como decirle al compilador que sé lo que estoy haciendo y, por supuesto, el compilador confía en usted y no le da ningún error.

Error de tiempo de compilación significa que el compilador sabe que discountVariable = saleVariable debe finalizar con un punto y coma como se muestra a continuación discountVariable = saleVariable; por lo que arrojará un error cuando compile el código.

Error de tiempo de ejecución significa que el error ocurrirá en tiempo de ejecución, porque a pesar de que está lanzando saleVariable a discountVariable, el molde no puede tomar porque difieren en el tipo.


Es porque el compilador no conoce el tipo de objeto "saleVariable" hasta que ese valor realmente se haya establecido cuando el programa se está ejecutando.

Usted está forzando lo que se encuentra en salesVariable en el tipo DiscountSale, esto se considera inseguro y no se puede evaluar hasta el tiempo de ejecución.


Los errores de tiempo de compilación son errores de sintaxis y semántica.

Los errores de tiempo de ejecución son principalmente errores de lógica. Debido a algo que el programador ha pasado por alto, el programa falla, por ejemplo, la división por 0, accediendo a una variable sin inicializarla primero, etc.


Los errores del compilador se deben a imprecisiones en el código, donde el compilador arroja un error para alertarlo sobre algo que no se compilará y, por lo tanto, no se puede ejecutar.

Ej: - Método de carga

class OverloadingTest { void sum(int a, long b) { System.out.println("a method invoked"); } void sum(long a, int b) { System.out.println("b method invoked"); } public static void main(String args[]) { OverloadingTest obj = new OverloadingTest(); obj.sum(200, 200);// now ambiguity } }

Los errores de tiempo de ejecución son aquellos que se detectan cuando se ejecuta el programa. Por ejemplo, división por cero. El compilador no puede saber si la operación x / ab llevará a la división por cero hasta la ejecución


Si usa Google, obtendría esto:

El error de tiempo de compilación es cualquier tipo de error que impida que un programa java compile como un error de sintaxis, una clase no encontrada, un nombre de archivo incorrecto para la clase definida, una posible pérdida de precisión cuando se mezclan diferentes tipos de datos java, etc.

Un error de tiempo de ejecución significa un error que ocurre mientras el programa se está ejecutando. Para manejar este tipo de errores, java define Excepciones. Las excepciones son objetos que representan una condición anormal en el flujo del programa. Se puede marcar o desmarcar.

http://wiki.answers.com/Q/Difference_between_run_time_error_and_compile_time_error_in_java


Un error de tiempo de ejecución ocurre durante la ejecución del programa. Se produce un error de compilación cuando intenta compilar el código.

Si no puede compilar su código, ese es un error del compilador.

Si compila y ejecuta su código, pero luego falla durante la ejecución, eso es tiempo de ejecución.


Un error de tiempo de ejecución solo ocurrirá cuando el código realmente se esté ejecutando. Estos son los más difíciles y conducen a fallas y errores del programa en su código que pueden ser difíciles de rastrear.

Un ejemplo podría ser tratar de convertir una cadena: "hola" en un número entero:

string helloWorld = "hello"; int willThrowRuntimeError = Convert.ToInt32(helloWorld);

El compilador puede no ver esto como un problema, pero cuando se ejecuta se generará un error.

Los errores del compilador se deben a imprecisiones en el código, donde el compilador arroja un error para alertarlo sobre algo que no se compilará y, por lo tanto, no se puede ejecutar.

Un ejemplo de un error de compilación sería:

int = "this is not an int";

Espero que ayude.


Compilación / Tiempo de compilación / Sintaxis / Errores semánticos: Los errores de compilación o tiempo de compilación se producen debido a errores de tipeo, si no seguimos la sintaxis y la semántica adecuadas de cualquier lenguaje de programación, el compilador arroja errores de tiempo de compilación. No permitirán que su programa ejecute una sola línea hasta que elimine todos los errores de sintaxis o hasta que depure los errores de tiempo de compilación.
Ejemplo: Falta un punto y coma en C o se escribe incorrectamente int como Int .

Errores en tiempo de ejecución: los errores en tiempo de ejecución son los errores que se generan cuando el programa está en estado de ejecución. Este tipo de errores harán que su programa se comporte de forma inesperada o incluso que mate su programa. A menudo se los denomina Excepciones.
Ejemplo: Supongamos que está leyendo un archivo que no existe, dará como resultado un error de tiempo de ejecución.

Lea más sobre todos los errores de programación aquí


Los errores de tiempo de compilación se refieren a la sintaxis y la semántica. Por ejemplo, si realiza operaciones que involucran diferentes tipos. Ej: agregar una cadena con un int, o dividir una cadena por un real. (lea el último párrafo, ¡¡¡!!!)

Los errores de tiempo de ejecución son aquellos que se detectan cuando se ejecuta el programa. Por ejemplo, división por cero. El compilador no puede saber si la operación x / ab llevará a la división por cero hasta la ejecución.

Esta es una explicación muy amplia . Hay muchos compiladores inteligentes y, también, es posible hacer fundidos internos entre diferentes tipos que conducen a operaciones que tienen sentido. Es posible precompilar el código y ver algunos errores de tiempo de ejecución, incluso si el código no se ejecuta.

Consulte también este enlace: Runtime vs Compile time