Salutare,
Presupunand ca avem o aplicatie cu 2 ferestre. In prima fereastra avem un buton care in momentul in care este apasat va executa urmatorul cod:
try {
using(Form2 f2 = new Form2()) { f2.ShowDialog(); }
}
catch(Exception) {
MessageBox.Show("Error");
Forma 2 va avea deasemeni un buton care va executa urmatorul cod: throw new Exception();
Stie cineva din ce motiv .. daca execut aceasta aplicatie simpla in modul debug (F5) totul functioneaza ca la carte ... dar daca rulez in release (CTRL + F5) exceptia nu ajunge in catch si aplicatia crapa?
Sorin,
Din pacate nu am reusit sa cream, inca, aici o baza de utilizatori care sa poata produce continut pentru forum. Asa ca e posibil ca problemele tale sa nu isi gasesca aici raspunsul. Iti recomand cu caldura sa incerci sa pui intrebarile tale pe MSDN Forums. Satisfactie garantata.
Scuze pentru intarzierea cu care raspund. Via Petru Jucovschi, Developer Evangelist la Microsoft Romania. De acord cu Lucian - noi putem aduce aici expertiza dar fie forumurile RONUA (ronua.ro), fie forumuri cum sunt cele de pe MSDN te vor ajuta sa gasesti raspuns mai rapid.
Presupun ca scenariul descris e o parte din unul mai complex, fiindca problema pe care vrei sa o rezolvi aici este tratarea (corecta) a exceptiilor in Windows Forms, care presupune 2 lucruri:
- Sa stii ca daca firul de executie al UI lanseaza o exceptie, aceasta va fi prinsa de handler-ul evenimentului ThreadException, a obiectului Application. Acest eveniment (ThreadException) este foarte important de tratat deoarece Windows Forms va asocia un handler default pentru acest eveniment daca tu nu te vei ocupa de asta (exact ceea ce ti se intampla tie in aplicatia descrisa).
- Sa identifici daca exceptiile din interfata ta pot fi lansate si din alte fire de executie decat cel de UI (un fir din Aplication Domain)
Ok, si acum mai in detaliu.
a. Situatia in care stii sigur ca exceptie vor fi lansate DOAR din firul UI:
Iti recomand sa citesti:
- Application Architecture in Windows Forms 2.0—UI Thread Exceptions
http://en.csharp-online.net/Application_Architecture_in_Windows_Forms_2.0%E2%80%94UI_Thread_Exceptions
- Top-level Exception Handling in Windows Forms Applications
http://richnewman.wordpress.com/2007/04/08/top-level-exception-handling-in-windows-forms-applications-part-1/
b. Daca mai folosesti in aplicatia ta Windows Forms si alte fire de executie care pot lansa exceptii si care ar putea afecta UI-ul :
- How to handle unhandled exceptions in Windows Forms
http://weblogs.asp.net/fmarguerie/articles/403665.aspx
nu cred ca am gasit un HELP mai bine dezvoltat decat MSDN.
--
Web Site Design
Student Club este dedicat pasionatilor de tehnologie.
Vei intalni membri sau alumni ai Microsoft Student Partners ce vor contribui cu bloguri, articole, evenimente sau pe forumuri.