Kezdőoldal » Számítástechnika » Programozás » Hibakezelés Delphiben?

Hibakezelés Delphiben?

Figyelt kérdés
Az lenne a kérdésem, hogy a fatal errorokat lehet valahogy kezelni delphiben, a kivételkezelés megy, de nem akarom, hogy fatal error esetén kiabáljon, max csak logoljon. Akkor szokott errort dobni egyébként ha vmi gond van a kapcsolattal (email lekérdező program). De jó lenne ezt a kezelést globálisan elintézni, ha akárhol hiba van akkor ne legyen gond. C#-ban egyénként ez ment try catch-el, de itt nem ezek szerint :D Fatal error alatt azt a klasszikus piros x-es üzenetet értem, csak hogy egyértelmű legyen :D

2014. máj. 21. 21:24
 1/7 anonim ***** válasza:

A hibákat ne globálisan kezeld, mert átláthatatlan lesz és idővel elszaporodnak a megtalálhatatlan bugok. Szépen a kritikus függvény köre teszel tryt, utánna hibaspecifikus catchet és minden jó lesz.


Ne gányolj, azt bárki tud.

2014. máj. 21. 21:53
Hasznos számodra ez a válasz?
 2/7 A kérdező kommentje:
De erről nem én tehetek, ha rossz a kapcsolat windows kritikal errort dob. Maga a program jól működik meglévő kapcsolat esetén.
2014. máj. 21. 22:03
 3/7 anonim ***** válasza:

De, tehetsz. A függvény specifikációjában szerepel, hogy milyen hibát dob és azt hogyan kell kezelni. Köréteszed, lekezeled, aztán minden heppi.


Vagy úgy gondolod, hogy az összes Delphis netes program gányolva van / errorokat dobál?

2014. máj. 21. 22:11
Hasznos számodra ez a válasz?
 4/7 A kérdező kommentje:

Dehogy gondolom így, csak nem vagyok egy tapasztalt ember delphiben, konkrétan egy hete tanulom, csak c#-ban megírtam jól ezt az emailes programot és szerettem volna delphiben is. Szal gyorsan elolvastam egy könyvet 2 nap alatt, hogy legyen vmi alap fogalmam és neki estem :$

Na miközben írtam pl ezt dobta ki: Temporary server error, please try again later. De ezt nem kivételként dobja, hanem kritikus üzenetnek, szal ezért nem értem, lehet hülye vagyok, de erről hogy tehetek én, ha ezt (vaslzeg) a gmail szerver válaszolja, szal vhogy ezt kéne lekezelni és hiába van try except blokkban az egész ugyanúgy kidobja.

2014. máj. 21. 22:24
 5/7 anonim ***** válasza:

C# után Delphit tanulsz? Nosztalgia?:)


Szerverek nem szoktak üzeneteket dobálni, ellenben a packetváró paranccsal.


Ha pästebinre feltöltöd a releváns kódrészletet talán tudunk segíteni.

2014. máj. 21. 22:35
Hasznos számodra ez a válasz?
 6/7 A kérdező kommentje:

Köszi szépen de végül sikerült megoldanom, ez volt a baj:

nekem ez volt írva (asszem):

except

on Exception e

.

.

.

end

és egyszerűen szintaktikailag helyes volt, de futás közben soha nem ugrott bele az except részbe bármi hiba történt.

Aztán kipróbáltam úgy, hogy csak sima except-et írok és utána a kód többi részét, és voala működött O.O


Szóval nem értem, hogy ha az Exceptet beteszem egy E változóba, (fel is használom az except után), akkor mért van szemantikai hiba, nagyon megköszönném ha ezt elmagyaráznád, mert már szétgugliztam az agyam de nem találtam magyarázatot :(

2014. máj. 30. 10:58
 7/7 anonim ***** válasza:

A jelenséget nem sikerült reprodukálnom, de találtam (ollóztam) egy egyszerű példaprogramot a kivételkezeléshez:

[link] ä->a


Itt kipróbálhatod:

[link]


Valószínűleg valamilyen másfajta hibát várt a hibakezelő részed - ha csak az 'except'-et írod, az mindet elkapja. Nem a leggyönyörűbb megoldás, de ha tesztelés után is jónak találod, nem nagy probléma.

2014. máj. 30. 12:52
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!