Avatar billede haunted Nybegynder
19. marts 2003 - 20:13 Der er 6 kommentarer og
1 løsning

Exception

Hej.

Når jeg prøver at indtaste bogstaver i edit feltet, giver den en exception i if sætningen.

I stedet for at skulle se en standard exception fejl vil jeg gerne have min egen. Men i nedenstående eksempel kommer der først en standard exception på skærmen, og derefter min egen... dette er jo ikke helt meningen!?

Hvordan kan jeg få min exception ud som den eneste??

  try {
    if (StrToInt(value) > 0) {
      // Do something
    }
  } catch (Exception& e) {
    Application->MessageBox("Værdi skal være numerisk", "Fejl", MB_OK);
  }
Avatar billede hsloth Novice
19. marts 2003 - 20:44 #1
Er det StrToInt i Microsofts shlwapi.dll vi taler om ?

Den skal selt ikke kaste en exception, men bare returnere TRUE eller FALSE.

Hvilken compiler etc. bruger du ?
Avatar billede haunted Nybegynder
19. marts 2003 - 21:14 #2
Nej den er defineret i SysUtils
Avatar billede tam Nybegynder
19. marts 2003 - 21:56 #3
hsloth: jeg tror han bruger borland cpp-builder.

Hmmmmm, hvorfor kan folk ikke forklare hvilken compiler de bruger, de tror bare at resten af verdenen bruger den samme som dem :-(
Avatar billede haunted Nybegynder
19. marts 2003 - 21:57 #4
Det er jo klart menige bruger altid det samme som sergenten ;-)

Det er rigtigt det fik jeg ikke sagt i farten...
Avatar billede segmose Nybegynder
20. marts 2003 - 09:40 #5
Prøv lige at sætte dette ind i dit program isteder for din kode:

  Application->MessageBox("Før test", "Fejl", MB_OK);
  try {
    StrToInt("Dur ikke");  // Skulle throw EConvertError
  }
  catch (EConvertError& e) {
    Application->MessageBox("ECon:Værdi skal være numerisk", "Fejl", MB_OK);
  }
  catch (Exception& e) {
    Application->MessageBox("Værdi skal være numerisk", "Fejl", MB_OK);
  }
  catch (...) {
    Application->MessageBox("i elipse", "Fejl", MB_OK);
  }

Om StrToInt (ikke CLX):

extern PACKAGE int __fastcall StrToInt(const AnsiString S);

Description

StrToInt converts the string S, which represents an integer-type number in either decimal or hexadecimal notation, into a number. If S does not represent a valid number, StrToInt throws an EConvertError exception.
Avatar billede haunted Nybegynder
20. marts 2003 - 18:25 #6
Nu skriver den først en meddelselse med "Før test" dernæst den sædvanlige EConvertError og til sidst "ECon:Værdi skal være numerisk"...
Avatar billede haunted Nybegynder
20. marts 2003 - 20:15 #7
Jeg har selv løst det...

Jeg gik ind i Tools->Debugger Options og trykkede "Stop on Delphi Exceptions" fra.

Nu kører det bare.

Ellers tak for hjælpen.
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