Tôi có một mạch điều khiển mà tôi giao tiếp với qua cổng nối tiếp. Nếu lệnh trả lời không khớp với một định dạng nhất định, tôi coi đó là lỗi và đã tự hỏi liệu tôi có nên trả lại mã lỗi hoặc ném ngoại lệ không? Ví dụ:C# Mã lỗi so với ngoại lệ
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.
...
}
Cảm ơn!
Thú vị; Tôi ngạc nhiên khi bạn đề xuất các trường hợp ngoại lệ đối với việc xử lý lỗi chuẩn. Bạn sẽ không dự trữ ngoại lệ cho các điều kiện bất thường hoặc bất ngờ? –
@JohnWeldon: Không, tôi sẽ sử dụng chúng cho các lỗi có nghĩa là mã gọi điện không nên tiếp tục như thể mọi thứ đều ổn. Có vẻ như điều này * là * một điều kiện bất ngờ mặc dù: "Nếu lệnh trả lời không khớp với một định dạng nhất định, tôi coi đó là lỗi." –
tức làdòng chảy bình thường của chương trình không có ý định xử lý trường hợp này? Tôi đồng ý với việc sử dụng Ngoại lệ trong trường hợp đó. Tuy nhiên, nếu chương trình bình thường mong đợi để đáp ứng với điều kiện lỗi này, tôi sẽ không sử dụng ngoại lệ. Cách giải thích của tôi về câu hỏi là câu hỏi sau, nhưng câu hỏi trước đây sẽ có giá trị như nhau. –