05. januar 2008 - 01:53Der er
9 kommentarer og 1 løsning
Lukke program efter fejl
Ved tryk på knap i hovedformen åbnes en form og et objekt instantieres. Dette objekt skal læse fra en fil. Hvis filen ikke findes fanges det med FileNotFoundException og en besked dukker op om fejlen. Herefter fortsætter programmet og kalder metoder, som ikke virker uden objektet, og programmet bryder sammen. Er det muligt at stoppe såsnart fejlen opdages og vende tilbage til hovedformen før der gåes videre?
Hos Computerworld it-jobbank er vi stolte af at fortsætte det gode partnerskab med folkene bag IT-DAY – efter vores mening Danmarks bedste karrieremesse for unge og erfarne it-kandidater.
Jeg ville nok gøre det sådan at din metode til at forsøge at åbne filen retunerer en boolean værdi. Og hvis den retunerer en true værdi udfører du så de andre metode kald.
Noget ala :
private Varer _Varer; public frmHPMVarer() { InitializeComponent(); if (ReadFile()) { UdskrivVarerIListview(); } else { MessageBox.Show("Fil mangler"); } }
og så denne :
private boolean ReadFile () { try { åben fil og læs fra den kode; return true; } catch { retrun false; } }
Jeg har nu prøvet at sætte try catch in på formen som åbner den nye form, der skal bruge en fil.
try { frmHPMVarer frmvarer = new frmHPMVarer(); frmvarer.ShowDialog(); } catch { MessageBox.Show("Fil mangler eller kan ikke læses."); }
Hvis filen mangler eller ikke kan læses så åbnes der ikke en ny form og programmet går ikke ned. Jeg ved ikke om dette er den helt rigtige måde at gøre det på. Jeg kan dog ikke spørge på nogen særlig undtagelse såsom filenotfoundexeption, men blot enhver fejl. Så jeg kan ikke fortælle brugeren, hvad fejlen er.
På den måde vil form2 kun blive vist såfremt din fil kan læses. Hvis den ikke kan læses, fanges din exception af din try{} catch {} på form 2 og sender Exception Message tilbage til form1 som så viser en messagebox med beskrivelse af fejlen.
Jo, på den måde skulle jeg kunne sætte enhver slags undtagelse ind i catch, men ellers virker min egen løsning egentlig også ok. Men jeg tror godt jeg vil bruge din løsning lasserasch. Så læg gerne et svar. Og tak for hjælpen.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.