No entiendo esta excepcion

28/09/2005 - 12:00 por Juan | Informe spam
Hola a todos:

Alguien me podria decir que significa este error:

Excepción no controlada del tipo 'System.StackOverflowException' en
Videoclub.exe

Gracias
 

Leer las respuestas

#1 Leonardo Azpurua [mvp vb]
28/09/2005 - 16:00 | Informe spam
"Juan" escribió en el mensaje
news:
Hola a todos:

Alguien me podria decir que significa este error:

Excepción no controlada del tipo 'System.StackOverflowException' en
Videoclub.exe



Hola, Juan:

El stack (pila) es un area de la memoria reservada para el pase de
parametros a las funciones y el almacenamiento de las direcciones de
retorno.

Cuando desde tu programa llamas a una función, el runtime almacena los
parametros y la direccion de retorno en el stack, cuando la funcion se
ejecuta y el control regresa al punto original, los parametros son
removidos.

Un anidamiento muy profundo de llamadas a funciones puede causar que el
espacio disponible en esa pila se agote, causando esa excepcion.

El stack tiende a ser bastante grande. Lo suficientemente grande como para
alojar información correspondiente a muchos niveles de anidacion de
llamadas. La unica manera practica de producir un desbordamiento del stack
es mediante recursión.

Una función recursiva es una funcion que se llama a si misma, por ejemplo:

Public Function Factorial(arg As Decimal) As Decimal
If Arg <= 1 Then Return 1
Return arg * Factorial(arg - 1)
End Function

Aunque no solo las funciones recursivas producen recursion, por ejemplo:

Sub A()
B
End Sub

Sub B()
C
End Sub

Sub C()
A
End Sub

A llama a B, que llama a C, que llama a A, que llama a B, que llama a C, que
llama a A...

Cuando se produzca la excepcion, abre la ventana que muestra la pila, y
trata de determinar donde se produce la recursión.

Salud!

Preguntas similares