मैं अपने कोड में एक विशिष्ट चेतावनी (W1035) को निष्क्रिय करना चाहते के बाद से मुझे लगता है कि संकलक इस चेतावनी के बारे गलत है:मैं अस्थायी रूप से "वापसी मूल्य को अपरिभाषित" चेतावनी कैसे अक्षम कर सकता हूं?
function TfrmNagScreen.Run: TOption;
begin
if ShowModal = mrOk then
Result := TOption(rdgAction.EditValue)
else
Abort
end;
कोई रास्ता परिणाम अपरिभाषित जा सकता है, के बाद से Abort
फेंकता EAbort
।
मैंने कोशिश की:
{$WARN 1035 Off}
: कुछ विशिष्ट त्रुटियों के लिए जाहिरा तौर पर यह केवल काम करता है (Documentation देखें){$W-1035}
: सभी
मैं जानता हूँ कि मैं चेतावनी बंद कर सकते हैं पर कुछ नहीं करता वैश्विक स्तर पर परियोजना विकल्पों में, या {$WARNINGS OFF}
का उपयोग करके, लेकिन यह यहां नहीं है।
संपादित करें: मैंने इसे #89744 के रूप में क्यूसी किया है।
हालांकि यह सच है कि संकलक कभी-कभी भ्रमित हो जाता है और बिना किसी कारण के इस चेतावनी की रिपोर्ट करता है, इस मामले में संकलक तकनीकी रूप से सही है। परिणाम सशर्त से पहले सौंपा नहीं गया है और केवल सशर्त की वास्तविक शाखा पर ही सौंपा गया है। तथ्य यह है कि यदि स्थिति गलत है तो फ़ंक्शन समय-समय पर लौटाता है, यह संकलक के लिए अप्रासंगिक है। –
@codeelgance: काफी सच है, लेकिन मुझे लगता है कि 'abort' एक अंतर्निहित कार्य है और संकलक स्थिति को पहचान सकता है। –