मेरे पास एक नियंत्रण सर्किट है जिसे मैं सीरियल पोर्ट के माध्यम से संवाद करता हूं। यदि प्रतिक्रिया कमांड किसी निश्चित प्रारूप से मेल नहीं खाता है तो मैं इसे एक त्रुटि मानता हूं और सोच रहा था कि मुझे त्रुटि कोड वापस करना चाहिए या अपवाद फेंकना चाहिए? उदाहरण के लिए:सी # त्रुटि कोड बनाम अपवाद
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.
...
}
धन्यवाद!
दिलचस्प; मुझे आश्चर्य है कि आप मानक त्रुटि हैंडलिंग के लिए अपवादों की अनुशंसा करेंगे। क्या आप असामान्य या अप्रत्याशित परिस्थितियों के लिए अपवाद सुरक्षित नहीं करेंगे? –
@ जॉन वेल्डन: नहीं, मैं उन त्रुटियों के लिए उनका उपयोग करूंगा जिसका मतलब है कि कॉलिंग कोड केवल आगे बढ़ना नहीं चाहिए जैसे सबकुछ ठीक था। ऐसा लगता है कि यह * एक अनपेक्षित स्थिति है हालांकि: "अगर प्रतिक्रिया कमांड किसी निश्चित प्रारूप से मेल नहीं खाता है तो मुझे लगता है कि यह एक त्रुटि है।" –
यानी।कार्यक्रम का सामान्य प्रवाह इस मामले को संभालने का इरादा नहीं है? मैं उस मामले में अपवादों के उपयोग से सहमत हूं। हालांकि, अगर कार्यक्रम को सामान्य रूप से इस त्रुटि की स्थिति का जवाब देने की उम्मीद करनी चाहिए तो मैं अपवादों का उपयोग नहीं करूंगा। प्रश्न की मेरी व्याख्या उत्तरार्द्ध थी, लेकिन पूर्व समान रूप से व्यवहार्य होगा। –