He creado una clase que analiza algún documento del archivo.Elegir entre la excepción y el valor de retorno
class Parser
{
public Parse(string fileName)
{
///
}
}
A veces puede haber errores de análisis en ese caso analizador tiene para devolver ciertos datos. Creé una clase especial para eso.
class ParsingError
{
// some data
}
¿Cómo puedo manejar estos errores correctamente? Tengo al menos dos opciones:
crear mi propia excepción o valor de retorno.
Opción uno
myParser.Parse(fileName, out error);
Opción dos
try
{
myParser.Parse(fileName)
}
catch(MyParsingException ex)
{
// use ex.Error field
}
ACTUALIZACIÓN
Si no me equivoco la ideología detrás de la excepción es que debe ocuparse de algo excepcional, esa es una situación que el método no tiene la intención de tratar.
Esto me lleva a preguntarse si, por ejemplo:
el analizador encuentra campo desconocido en el archivo, o la codificación es incorrecto
habría que considerar un caso excepcional?
cuestión de gustos? Las funciones del analizador que conozco en C# usan la excepción. – jwillmer
posible duplicado de [.Valor de retorno neto frente a la pregunta de diseño de excepción lanzada] (http://stackoverflow.com/q/4884539/102112) – Alex
¿Hay algo más en esta pregunta aparte de cuál es mejor? Esa pregunta se responde en varias preguntas, p. http://stackoverflow.com/questions/99683/which-and-why-do-you-prefer-exceptions-or-return-codes – StuperUser