Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

151
Vistas
¿Está bien lanzar diferentes excepciones para exactamente el mismo problema si ocurre en un contexto diferente?

Tengo un problema simple en mi proyecto (Servicio de Windows basado en C #) que simplemente no puedo entender.

En varias clases de mi aplicación necesito cargar un intervalo (lapso de tiempo), desde la configuración de la aplicación. En el archivo de configuración, este intervalo de tiempo se almacena como una cadena, como "1d8h". Obviamente, la aplicación necesita analizar esta cadena antes de poder usar el intervalo de tiempo. En un caso, estoy pasando esta cadena como argumento a un constructor mientras inicializo varios objetos que tienen su propio lapso de tiempo. En el constructor, analizo esta cadena y lanzo una ArgumentException si el análisis falla por cualquier motivo.

En algún otro lugar de mi aplicación, necesito hacer exactamente lo mismo, pero esta vez en un constructor estático que no puede tener ningún argumento. En este caso, estoy lanzando una System.Configuration.ConfigurationErrorsException porque no estoy trabajando con ningún argumento, por lo que lanzar una ArgumentException no sería correcto en este caso.

¿Está perfectamente bien lanzar diferentes excepciones en ambos casos, a pesar de que sean causadas exactamente por la misma operación? Si no, ¿qué debo hacer en su lugar?

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Sugiero usar FormatException en ambos casos.

Como dijiste, ArgumentException señala un problema con un argumento, generalmente su tipo o tipo (mientras que ArgumentNullException se usa específicamente para argumentos nulos). Por lo tanto, ninguno es aceptable en un constructor estático que no acepta argumentos.

FormatException encaja muy bien. Señala un problema con el formato del argumento en sí, más que con su tipo o clase. Lo lanzan la mayoría de los métodos .Parse() nativos de C#, como DateTime.Parse()

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda