क्या यह Winforms में एक बग है?क्यों फॉर्म लोड अपवाद नहीं पकड़ सकता है?
private void Form1_Load(object sender, EventArgs e)
{
throw new Exception("Hey");
}
मुझे लगता है कि कोड में किसी भी त्रुटि प्राप्त नहीं होता है (दोनों VS2008 और VS2010 पर परीक्षण), कुछ समय पहले, मैं इस सवाल Parse a number from a string with non-digits in between
के लिए एक समाधान तैयार करने के लिए कोशिश कर रहा हूँ और मैं इस कोड को करना फॉर्म 1_ लोड में:
private void Form1_Load(object sender, EventArgs e)
{
MessageBox.Show("X");
string s = "12ACD";
string t = s.ToCharArray().TakeWhile(c => char.IsDigit(c)).ToArray().ToString();
MessageBox.Show("Y");
int n = int.Parse(t);
MessageBox.Show(n.ToString());
}
मुझे आश्चर्य है कि यह संख्या क्यों नहीं दिखाया। तब button1_Click करने के लिए कोड ...
private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show("X");
string s = "12ACD";
string t = s.ToCharArray().TakeWhile(c => char.IsDigit(c)).ToArray().ToString();
MessageBox.Show("Y");
int n = int.Parse(t);
MessageBox.Show(n.ToString());
}
जाने पर ... तो मैंने देखा उसमें कोई त्रुटि है कि: इनपुट स्ट्रिंग एक सही स्वरूप में नहीं था।
क्यों फॉर्म 1_लोड को कोई अपवाद नहीं मिला, यह चुपचाप विफल क्यों हुआ? कोड स्ट्रिंग टी = एस.ToCharArray() पर form1_load से बाहर निकलें कोड ले लो ...
मैंने अपने Win7 SP1 x64 विकास मशीन पर इस व्यवहार को सफलतापूर्वक सही कर दिया है। कैसे [यह जवाब] देखें (http://stackoverflow.com/a/11997142/119527) कैसे। –