Autor Téma: musím uviesť raise ak ho nepotrebujem?  (Přečteno 770 krát)

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4584
  • Karma: 40
    • Verze Delphi: XE7 professional
musím uviesť raise ak ho nepotrebujem?
« kdy: 18-07-2019, 21:18:46 »
Kód: Delphi [Vybrat]
  1. procedure TfrmsubFiSe.actDeleteExecute(Sender: TObject);
  2. const
  3.   RecordCount = 2;
  4. begin
  5. {$IF isDemo}
  6.   if adoipv(TADOTable(oGlobalVar.ActualObject.DBBasic.Dataset), RecordCount) then
  7.     Exit;
  8. {$IFEND}
  9.   try
  10.     oGlobalVar.ActualObject.DeleteRecord(True);
  11.     oGlobalVar.UpdateVSTAndCbBx.FiSe := True;  // Len v prípade úspechu. Preto try...except
  12.   except //on E: Exception do
  13. //  Mám tu uviesť raise?
  14.   end;
  15. end;
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Jirka

  • Plnoletý
  • ***
  • Příspěvků: 154
  • Karma: 8
    • Verze Delphi: XE2
Re:musím uviesť raise ak ho nepotrebujem?
« Odpověď #1 kdy: 18-07-2019, 23:45:15 »
Zalezi co chces delat dal. Volani raise uvnitr except bloku vyvola odchycenou vyjimku vne takoveho bloku. Pokud toto nechces, raise nevolej.
vyvola odchycenou vyjimku "vne" takoveho bloku.
Jak tomu mám rozumět ?
Nemá být spíše : Vyvolá odchycenou vyjimku "uvnitr" takoveho "chráněného" bloku.
« Poslední změna: 18-07-2019, 23:47:50 od Jirka »

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 2625
  • Karma: 133
    • Verze Delphi: D2007, XE3, DX10
Re:musím uviesť raise ak ho nepotrebujem?
« Odpověď #2 kdy: 19-07-2019, 06:30:39 »
Excellent
Rated 1 time
vyvola odchycenou vyjimku "vne" takoveho bloku.
Jak tomu mám rozumět ?
Propaguje odchycenou vyjimku dal (vne)

Offline Jirka

  • Plnoletý
  • ***
  • Příspěvků: 154
  • Karma: 8
    • Verze Delphi: XE2
Re:musím uviesť raise ak ho nepotrebujem?
« Odpověď #3 kdy: 19-07-2019, 08:47:14 »
vyvola odchycenou vyjimku "vne" takoveho bloku.
Jak tomu mám rozumět ?
Propaguje odchycenou vyjimku dal (vne)
To je asi otázkou semantiky co znamená "vyvolá" a co "propaguje".
Ale mě to vysvětlení stačí  ;)

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4584
  • Karma: 40
    • Verze Delphi: XE7 professional
Re:musím uviesť raise ak ho nepotrebujem?
« Odpověď #4 kdy: 19-07-2019, 09:55:32 »
Ja som sa viackrát stretol s "zdvihne/povýši výnimku". Zdá sa mi, že to je aj v manuáloch Embarcadera.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Jirka

  • Plnoletý
  • ***
  • Příspěvků: 154
  • Karma: 8
    • Verze Delphi: XE2
Re:musím uviesť raise ak ho nepotrebujem?
« Odpověď #5 kdy: 19-07-2019, 09:58:58 »
To je asi otázkou semantiky co znamená "vyvolá" a co "propaguje".

A jak bys prelozil sloveso raise do programatorske cestiny? Mam obavu kdybych napsal propaguje tak se nekdo zepta co to znamena ;)

Já to chápu asi takto :
Vyvolá -  definuje vzniklou vyjimku v chraněném bloku  a já si to mohu  budto ošetřit vlastní rutinou nebo nedělat nic  případně zařadit raise
Propaguje  vně (pošle vyjimku dál)  - v případě zařazení raise

Ale jak jsem psal, už chápu jak jste to mysleli  ... 

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 2625
  • Karma: 133
    • Verze Delphi: D2007, XE3, DX10
Re:musím uviesť raise ak ho nepotrebujem?
« Odpověď #6 kdy: 19-07-2019, 10:28:30 »
Osobne bych rekl, ze se vyvola (na miste vytvorena) vyjimka EMyException.
Ja to sice taky studoval z anglictiny, ale rekl bych, ze vyvola je spravny cesky termin.

V C-like jazykach to maji se throw slozitejsi, ale tam, kde se slangove pouziva
"ze to zahodi", tak mam dojem ze se to taky prekladava jako "vyvola vyjimku".

Offline Jirka

  • Plnoletý
  • ***
  • Příspěvků: 154
  • Karma: 8
    • Verze Delphi: XE2
Re:musím uviesť raise ak ho nepotrebujem?
« Odpověď #7 kdy: 19-07-2019, 10:28:41 »
Pravdou je, ze jsem mel radeji napsat "Volani raise uvnitr except bloku propaguje odchycenou vyjimku vne tento blok." Omlouvam se za zmateni :)
Takto bych to pochopil hned  :).  Ale zřejmě to zmátlo jen mě  ;)
Jen na závěr debaty - význam slova propaguje je pro mě osobně úplně jiný než zde myšlený - ale nemám problém si to "přeložit"

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 2625
  • Karma: 133
    • Verze Delphi: D2007, XE3, DX10
Re:musím uviesť raise ak ho nepotrebujem?
« Odpověď #8 kdy: 19-07-2019, 10:35:37 »
Jen na závěr debaty - význam slova propaguje je pro mě osobně úplně jiný než zde myšlený - ale nemám problém si to "přeložit"
Zrejme ho vnimas jen v politickem/marketingovem smyslu, ale obecne to zmanena šíření, rozšiřování, množení, rozmnožování

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4584
  • Karma: 40
    • Verze Delphi: XE7 professional
Re:musím uviesť raise ak ho nepotrebujem?
« Odpověď #9 kdy: 19-07-2019, 12:35:37 »
Tak som sa schválne pozrel do slovenského slovníka: rozširovať poznatky o niečom a odporúčať to: propagovať vegetariánsku stravu, propagovať šport
To slovo som teda takto nevnímal ;)
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.