¿Cómo surgió la idea del manejo de excepciones en los lenguajes de programación? [duplicar]

13

Hoy, si nos fijamos en cualquier idioma, el manejo de excepciones es casi una característica obligatoria. Los idiomas que no lo tenían anteriormente lo están implementando en sus versiones posteriores.

Me pregunto cómo surgió esta idea, porque las excepciones tienen un flujo totalmente separado que se ejecuta en paralelo con el flujo del código principal y puede interrumpir el flujo principal en cualquier momento.

En mi humilde opinión, la idea es un poco alucinante. Entonces, ¿cómo surgió esta idea? ¿Un poco de historia?

Nota para evitar el cierre (No funcionó): Y por Historial no me refiero a las fechas, horas, nombres y lugares. De hecho, quería saber la historia informal de cómo surgió la idea en los idiomas. ¿Vino de algún tipo de buenas prácticas de programación? ¿O fue idea de alguien en primer lugar?

    
pregunta Gulshan 25.07.2011 - 18:56

3 respuestas

4

THROW estuvo en Lisp en los 70, y longjmp estuvo en C, emparejado con setjmp al mismo tiempo.

Añadido: estás preguntando a cómo se les ocurrió la idea.

Bien, si está codificando en cualquier idioma, escribiendo rutinas, llamando rutinas, tratando de averiguar cómo manejar las condiciones que no esperaba, tiene opciones como "establecer una variable de error global y devolver", o "tiene un código de retorno de error que la persona que llama debe verificar".

Inevitablemente comienzas a desear fuertemente "Tiene que haber una mejor manera de hacer esto. ¿No podría simplemente salir corriendo de aquí?" Si estás usando un lenguaje ensamblador, sabes que en principio es muy simple.

Eso es cómo .

    
respondido por el Mike Dunlavey 25.07.2011 - 19:01
3

El primer idioma del cual soy consciente de que incluía el manejo de excepciones fue PL / I, en 1964 1 .

Le dio a la administración de excepciones un poco de mal nombre, ya que las usó para manejar situaciones que dudo que alguien tratara como excepciones en la mayoría de los idiomas modernos (por ejemplo, llegar al final de un archivo).

Lo provocó en gran parte Fortran, que (en las versiones anteriores) no ofrecía ninguna forma de detectar tales condiciones (incluida la detección de cuándo había llegado al final de un archivo).

1 Originalmente se definió en 1964. Los compiladores reales llegaron algo más tarde, y la definición siguió en curso hasta alrededor de 1967 o 1968.

    
respondido por el Jerry Coffin 25.07.2011 - 19:06
0

Bueno, surgió como una herramienta de depuración, pero pronto logró su implementación en tiempo de ejecución en lenguajes como LISP y C.

Sin embargo, hay varios tipos de / formas de preformar el manejo de excepciones y todo se basa en la perspectiva.

Probablemente te refieres al manejo de excepciones en forma de declaraciones try-catch, sin embargo, este también es un tipo de manejo manual de excepciones (C ++), y ha existido por siempre:

    int* pA;
    pA = new int[20];
    if( pA == 0 )
       cout<<"Memory could not be allocated!"<<endl;
    
respondido por el user32288 25.07.2011 - 19:58

Lea otras preguntas en las etiquetas