Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

3 reglas de marteens

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: 3 reglas de marteens Responder citando

1.- (La regla de throw) Utilice throw con toda naturalidad, cada vez que quiera evitar que el algoritmo siga su ejecución lineal, cada vez que detecte una situación que no puede manejar en ese momento. En pocas palabras, cada vez que se le antoje.

2.- (La regla de try/finally) Utilice try/finally cada vez que pida un recurso, para asegurar su devolución. Esta es la regla de la “honestidad”.

3.- (La regla de try/catch) Utilice try/catch lo menos posible; en la práctica, casi nunca.

Alguien me podria explicar por que tan así la regla nº3 y por que utilizarlo
lo menos posible.

y que diferencia existe entre

try
{

}
__finally


try
{
}
__except(EXCEPTION_EXECUTE_HANDLER)
Volver arriba
Mensaje    Asunto: Responder citando

Hola, respecto a la regla nº3, supongo que es Ian quien debería contestarte (pero nunca lo he visto por el foro). Te doy mi punto de vista.

Si genero catch{} es porque conozco el error que se puede producir en ese punto del programa y tengo un recurso para salvarlo, pero el error se ha cometido.

Si consigo no usar ningún catch{} es porque he desarrollado el código lo suficientemente bien como para que no se llegue a producir la situación de error, y si se produce que no llegue a afectar a la ejecución de mi programa.

Lo veo así, no busco solución a los errores porque si se producen no es debido a mi programa si no a algo externo a él. Sólo es mi punto de vista.

Respecto a la segunda pregunta, el bloque __finally se ejecuta siempre, pase lo que pase con el try. No termina mi función en el instante de producirse el error si no que antes tiene que ejecutar el bloque __finally. No conozco __except(), pero da la sensación de que estás lanzando una excepción, osea estás ejecutando catch{}, que sólo se realizará si hay un error en el try{} que le precede.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

gracias Enrique por darme tu opinion
Volver arriba
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.