Avatar billede mmfrandsen Nybegynder
07. januar 2004 - 23:17 Der er 9 kommentarer og
1 løsning

Ignorer exception og gå videre

Jeg har en lille smule kode, der ser sådan her ud:

Procedure [bla bla bla]
var [bla bla bla]

begin

try
RenameFile(ListBox1.Items[0], Edit1.Text + '\Textures\Cycliste' + ListBox2.Items[0] + '\');
ListBox1.Items[0] := Edit1.Text + '\Textures\Cycliste' + ListBox2.Items[0] + '\';
RenameFile(form1.ListBox1.Items[1], form1.Edit1.Text + '\Textures\Cycliste' + form1.ListBox2.Items[1] + '\');
form1.ListBox1.Items[1] := form1.Edit1.Text + '\Textures\Cycliste' + form1.ListBox2.Items[1] + '\';
RenameFile(form1.ListBox1.Items[2], form1.Edit1.Text + '\Textures\Cycliste' + form1.ListBox2.Items[2] + '\');
form1.ListBox1.Items[2] := form1.Edit1.Text + '\Textures\Cycliste' + form1.ListBox2.Items[2] + '\';

exception

end;


Så vidt jeg kan forestille mig, ignorerer programmet nu, hvis der opstår en fejl (exception) i koden, men... Jeg skal også have den til, at forstætte derefter.
Alstå, hvis der er en exception ved denne her linje:

ListBox1.Items[0] := Edit1.Text + '\Textures\Cycliste' + ListBox2.Items[0] + '\';

Skal den bare ignorere den og gå videre til:

RenameFile(form1.ListBox1.Items[1], form1.Edit1.Text + '\Textures\Cycliste' + form1.ListBox2.Items[1] + '\');


Nogen, der kan forklare mig, hvordan jeg gør det?
Avatar billede mmfrandsen Nybegynder
07. januar 2004 - 23:20 #1
Sorry... Der skal selvfølgelig stå except i stedet for exception.
Avatar billede mmfrandsen Nybegynder
07. januar 2004 - 23:22 #2
Og så skulle der også have været en ekstra end; på, men jeg håber der kan ses udover de små skønhedsfejl :p
Avatar billede razersedge Nybegynder
08. januar 2004 - 01:34 #3
IDE'et vil vise en exception-error hvis en exception bliver raised, dette kan du slå fra under:
Tools > Debugger Options > Language Exceptions > "Stop on Delphi exceptions"
Avatar billede doc404 Novice
08. januar 2004 - 02:20 #4
Hmm...
Jeg tror du er ved at rode dig ud i noget skidt ;-)

Den eneste måde du kan få en exception på i det eksempel du viser er, hvis der ikke er nogle items i ListBox1 og/eller ListBox2. Du bør ikke bruge exceptions til at redde dig pga. dårlig logik i dit program.

Dit eksemple kunne du redde på en simpel måde:

if (ListBox1.Items.Count > 0) and (ListBox2.Items.Count > 0) then
  bla bla.
else
  do nothing...

PS: Også giv dog dine listboxe nogle fornuftige navne....
Avatar billede badass Nybegynder
08. januar 2004 - 10:29 #5
Sæt din kode ind i en Try...Finally i stedet Try...Except

// BadAss
Avatar billede mmfrandsen Nybegynder
08. januar 2004 - 14:49 #6
badass og razersedge: Begger jeres eksempler ignorerer fejlen, men går ikke videre (formentlig fordi den ikke kan rename til noget den ikke ved hvad er).

Doc404: Jeg var i gang med en lignende kode, men da jeg allerede har dummet mig og gentaget det MANGE gange, så ville det bare tage lang tid at sætte koden ind de rigtige steder (især, fordi der kan være fra 1 til 10 items in ListBox'ene og der er 22 listboxe), men jeg gætter på at det er det jeg bliver nødt til. Jeg kan godt acceptere dit svar, hvis du laver et ;)
Avatar billede badass Nybegynder
08. januar 2004 - 15:04 #7
Drop Try...Finally.

Du skal have en Try..Except omkring de linier som kan gå galt.

Eks.
RenameFile(ListBox1.Items[0], Edit1.Text + '\Textures\Cycliste' + ListBox2.Items[0] + '\');
Try
  ListBox1.Items[0] := Edit1.Text + '\Textures\Cycliste' + ListBox2.Items              [0]    + '\';
RenameFile(form1.ListBox1.Items[1], form1.Edit1.Text + '\Textures\Cycliste' + form1.ListBox2.Items[1] + '\');
Avatar billede badass Nybegynder
08. januar 2004 - 15:06 #8
Ups...

RenameFile(ListBox1.Items[0], Edit1.Text + '\Textures\Cycliste' + ListBox2.Items[0] + '\');
Try
ListBox1.Items[0] := Edit1.Text + '\Textures\Cycliste' + ListBox2.Items[0] + '\';
Except
  < Sæt nogle default værdier for de linier som er fejlbehæftede >
end;
RenameFile(form1.ListBox1.Items[1], form1.Edit1.Text + '\Textures\Cycliste' + form1.ListBox2.Items[1] + '\');
Avatar billede mmfrandsen Nybegynder
09. januar 2004 - 21:32 #9
doc404?
Avatar billede doc404 Novice
09. januar 2004 - 23:01 #10
:-)
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

IT-JOB

Politiets Efterretningstjeneste

Fullstack softwareudvikler i PET

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Cyberdivisionen søger Entreprise Arkitekt

Rambøll Management Consulting

Senior Software Engineer