Fecha y hora actual: Lunes 09 Dic 2019 07:06
Índice del Foro

Foros de programación informática, diseño gráfico y Web

En esta comunidad intentaremos dar soporte de programación a todos los niveles, desde principiantes a profesionales de la informática, desarrollo de programas, programación web y mucho más.

Validaciones vs Excepciónes

Responder al Tema

Índice del Foro > Programación en general > Validaciones vs Excepciónes

Autor Mensaje
Vicman



Registrado: 03 Nov 2019
Mensajes: 1

Mensaje Publicado: Domingo 03 Nov 2019 16:28

Título del mensaje: Validaciones vs Excepciónes

Responder citando

Tengo una pregunta algo basica(Pero todo sea por mejorar!!)

Tomando en cuenta que tengo "X" codigo al cual tengo que enviarle "N" cantidad de parametros de entrada

Cual seria la mejor practica a tomar en cuenta en este escenario:

1.Validar siempre mis parametros de entrada(Verificar que se envien los tipos correctos,validar que se envien los datos etc...)

2.Encerrar el codigo siempre dentro de un Try Catch(Siempre) y personalizar lo mas que se puedan las excepciones

3.Aplicar siempre el punto 1 y 2,osea siempre validar mis datos y encerrar todo el codigo en un Try Catch general


Personalmente para mi el punto 3 es la opcion que tiene mas sentido,pero mucha gente dice que el Try Catch le quita performance al codigo
y solo deberia de usarse en casos contados(cuales serian esos casos para ustedes?).

Por otro lado,personalizar las excepciones me quitaria mucho tiempo,imaginaos que tenga un codigo de 100 lineas!!!

Volver arriba
Ver perfil del usuario Enviar mensaje privado
Kyshuo Ayame
Moderador Global


Registrado: 07 Ene 2011
Mensajes: 1045

Mensaje Publicado: Sábado 30 Nov 2019 18:29

Título del mensaje: Validaciones vs Excepciónes

Responder citando

Hola Vicman. Un gusto saludarte. Un código de 100 líneas es extremadamente pequeño. En principio, cuando uno está aprendiendo, le parece largo, pero en la medida que avances, trabajarás con códigos de más de 5000 líneas, o muchísimas más, repartidas en diferentes módulos.

Ahora bien, tu pregunta no es trivial, sino más bien interesante. Todo dependerá de los requerimientos del sistema. Por lo general, se define lo que se conoce como PRECONDICIONES. Por ejemplo, imagínate un código para hacer una división entre dos números:

Las condiciones ideales para que dicho código funcione son:

  • Recibir DOS números
  • El segundo número no puede ser CERO


Para ello tenemos algunas opciones:

  1. Validar la entrada de forma que si no se ingresan dos números se muestre un mensaje de error.
  2. Validar que el segundo número sea siempre distinto de cero.


Ante esto hay que ver la precondición de la operación. Si es PRECONDICIÓN que nunca se ingresará cero como segundo número, entonces la operación encargada de hacer la división no debe validar esto, sino asumir que se cumple. Esto quiere decir que dicha validación es hecha antes.

En general se valida la entrada siempre lo antes posible, por eso cuando tú llenas un formulario en un programa o página Web, es el propio formulario el que valida los datos.

Las Excepciones y el uso de Try-Catch queda más que nada delegado a situaciones en las que no es posible asumir que los datos se recibirán siempre correctamente. Por ejemplo, si tú creas una función para dividir dos números, la cual será usada por otros programadores, no podrás jamás asumir que alguno de ellos no se equivoque e intente por tanto introducir 0 como divisor. En este sentido, tu función debería validar esto internamente y lanzar una excepción si esto ocurre. Como tu función puede lanzar una excepción, entonces al ser utilizada sí o sí tiene que estar encerrada dentro de un Try-Catch.

Otro ejemplo es intentar crear archivos. A priori tú no puedes saber si tendrás permisos para crearlos o no, y por tanto es posible recibir una negación del sistema operativo y por tanto una excepción de lectura/escritura, lo cual debe capturarse como excepción.

En general, fíjate si las funciones que vas a usar lanzan excepciones, en tal caso las encierras en Try-Catch.

ENCERRAR TODO EN UN TRY CATCH GENERAL ES UN ERROR, está mal, y no debería ser una práctica que utilices. Debes poder diferenciar en tu código los diferentes bloques de tareas y sus posibles errores.

Volver arriba
Ver perfil del usuario Enviar mensaje privado
Responder al Tema
Mostrar mensajes anteriores:   
Ir a:  
Todas las horas están en GMT + 2 Horas

Temas relacionados

Tema Autor Foros Respuestas Publicado
El tema está bloqueado: no pueden editarse ni agregar mensajes.

Manejo de excepciones

julian403 C, C#, Visual C++ 1 Martes 18 Feb 2014 01:37 Ver último mensaje
El foro no contiene ningún mensaje nuevo

Herencias, Assert, Excepciones. Una ayuda por f...

plescanos Java 0 Miércoles 18 Sep 2013 23:38 Ver último mensaje
El foro no contiene ningún mensaje nuevo

Crear excepciones y señalar el código incorrecto.

metalfox6383 C, C#, Visual C++ 16 Martes 17 Sep 2013 15:19 Ver último mensaje
El foro no contiene ningún mensaje nuevo

Validaciones Javascript

Dark_Slash JavaScript 2 Viernes 26 Jul 2013 01:41 Ver último mensaje
El foro no contiene ningún mensaje nuevo

Problemas de lanzamiento de excepciones y devol...

skarman11 Java 0 Miércoles 10 Abr 2013 11:10 Ver último mensaje
Panel de Control
No puede crear mensajes, No puede responder temas, No puede editar sus mensajes, No puede borrar sus mensajes, No puede votar en encuestas,