Tengo un circuito de control con el que me comunico a través del puerto en serie. Si el comando de respuesta no coincide con un determinado formato, lo considero un error y me pregunto si debería devolver un código de error o lanzar una excepción. Por ejemplo:C# Código de error frente a la excepción
public double GetSensorValue(int sensorNumber)
{
...
string circuitCommand = "GSV,01," + sensorNumber.ToString(); // Get measurement command for specified sensor.
string responseCommand;
string expectedResponseCommand = "GSV,01,1,OK";
string errorResponseCommand = "ER,GSV,01,1,62";
responseCommand = SendReceive(circuitCommand); // Send command to circuit and get response.
if(responseCommand != expectedResponseCommand) // Some type of error...
{
if(responseCommand == errorResponseCommand) // The circuit reported an error...
{
... // How should I handle this? Return an error code (e.g. -99999) or thrown an exception?
}
else // Some unknown error occurred...
{
... // Same question as above "if".
}
}
else // Everything is OK, proceed as normal.
...
}
¡Gracias!
interesante; Me sorprende que recomiende excepciones para el manejo de errores estándar. ¿No reservaría excepciones por condiciones inusuales o inesperadas? –
@JohnWeldon: No, los usaría para errores que significan que el código de llamada no debería continuar como si todo estuviera bien. Sin embargo, parece que * es * una condición inesperada: "Si el comando de respuesta no coincide con un determinado formato, lo considero un error". –
es decirel flujo normal del programa no está destinado a manejar este caso? Estoy de acuerdo con el uso de Excepciones en ese caso. Sin embargo, si el programa normalmente espera responder a esta condición de error, no usaría excepciones. Mi interpretación de la pregunta fue la última, pero la primera sería igualmente plausible. –