Cita:
Empezado por Al González
A mí me preocupa que la técnica de programación se base en el gusto personal sin antes analizar el riesgo de funcionamiento del código.
|
Lamento que interpretes así a la ligera mis palabras. En ningún momento he dicho que cada quien programe como quiera sin importar que esté bien o mal.
Cita:
Empezado por Al González
El contexto consiste básicamente en advertir si una llamada a un constructor o a un destructor es susceptible de elevar una excepción.
|
En el caso de constructores esto sería virtualmente imposible. Por ello -precisamente- existen los bloques de protección.
Cita:
Empezado por Al González
No es igual con un constructor que sólo reserva memoria que con uno que abre una conexión de base de datos.
|
Es, de hecho, lo mismo. Cualquier reserva de memoria, aunque parezca una operación sencilla, debe estar protegida. Muy lejos del control del programador está el que haya memoria suficiente.
Cita:
Empezado por Al González
O con un destructor que solamente libera memoria que con uno que intenta agregar una línea a un archivo .log, por mencionar un par de ejemplos.
|
Intentar acceder a disco es un ejemplo de lo que NO debe hacerse en un destructor.
Cita:
Empezado por Al González
Entiendo que en el caso de los destructores el código debe ser sumamente cuidadoso, pero en la práctica solemos ver cadenas de llamadas a partir de un destructor que desembocan en una rutina lejana que, no pensada para ser llamada durante la ejecución de un destructor, eleva una excepción.
|
Como ya he mencionado varias veces, esto en la práctica no sucede, a no ser que estemos trabajando con código sumamente mal diseñado.
Cita:
Empezado por Al González
Creo que el gusto o estilo debería ir después de analizar este tipo de vicisitudes, y ante el "empate", entonces sí aplicar el gusto.
|
Es precisamente lo que he hecho.
Cita:
Empezado por Al González
Pero no precipitarse por lo que más agrada sin un análisis previo, quizá no concienzudo, pero sí realizado cuando menos.
|
Y así lo he hecho.
// Saludos