Hata Yakalama :(

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
hi_selamlar
Üye
Mesajlar: 523
Kayıt: 05 May 2005 03:24
Konum: DelphiTürkiye.COM

Hata Yakalama :(

Mesaj gönderen hi_selamlar »

S.A. Arkadaşlar.

Benim çok acayip bir sıkıntım var. forumda bir çok arama yaptım fakat çözüm bulunamadım.

Bende 1.8 mhz cpu sistem var. yaptığım proje de jedi vcl, rx falan kullandım. program bir çok sistemde çalışıyor. Gel gelelim ki Hyper Trading işlemcilerde sorun çıkarıyor. Program bir türlü çalışmıyor.

Programı çalıştırınca hiç bir hata vermeden küt diye kapanıyor.

İşin en ilginç tarafı ise programda hiç bir hatanın dönmemesi. Bir türlü hatayı bulumadım. HT işlemcilerin hepsinde bu hata yaşanıyor.

Windows kendi hatasını veriyor. "Program bir hata ile karşılaştı kapatılacakç" hepsi bu kadar. ne yaptıysam hatanın tam olarak ne olduğunu bir türlü tespit edemedim.

amacım windows kendi hatasını vermeden programın hatasını yakalayıp ne olduğunu anlamak istiyorum. fakat bununla ilgili bir kod da bulumadım.

windows hatasından önce programın ürettiği orjinal hatayı nasıl tespit edebilirim. Lütfen bu konuda acil olarak yardımlarınızı bekliyorum. :?: :oops: :cry:

teşekkürler.


S.A.
Herkes cahildir, bazi konularda.
Akin_Delphi
Üye
Mesajlar: 163
Kayıt: 06 Nis 2006 12:22

Re: Hata Yakalama :(

Mesaj gönderen Akin_Delphi »

hi_selamlar yazdı:S.A. Arkadaşlar.
Programı çalıştırınca hiç bir hata vermeden küt diye kapanıyor.

İşin en ilginç tarafı ise programda hiç bir hatanın dönmemesi. Bir türlü hatayı bulumadım. HT işlemcilerin hepsinde bu hata yaşanıyor.

Windows kendi hatasını veriyor. "Program bir hata ile karşılaştı kapatılacakç" hepsi bu kadar. ne yaptıysam hatanın tam olarak ne olduğunu bir türlü tespit edemedim.

windows hatasından önce programın ürettiği orjinal hatayı nasıl tespit edebilirim. Lütfen bu konuda acil olarak yardımlarınızı bekliyorum. :?: :oops: :cry:

teşekkürler.


S.A.
A.S.
Jedi'nin böyle bir bug'ı var. Ancak yeni sürümlerde bu düzeltilmişti diye hatırlıyorum. Belki Jedi bileşenlerini güncellemeniz gerekmekte.

Ancak (hemen hemen) her türlü hatayı yakalayan bir bileşen (seti) var. MadExcept. Google'da aratırsanız çok kolay bulabilirsiniz. Yükledikten sonra kendisini delphi menülerine ekliyor. Bu menüyü seçtiğinizde handle exceptions seçeneğini seçtiğinizde hemen her türlü istisnayı gösteriyor.

Dolayısıyla oldukça yararlı.

Başarılar ve Saygılar
Kullanıcı avatarı
hi_selamlar
Üye
Mesajlar: 523
Kayıt: 05 May 2005 03:24
Konum: DelphiTürkiye.COM

Mesaj gönderen hi_selamlar »

S.A.

ben projeden jvcl hepsini çıkardım. Uses lardan iptal ettim.
fakat program yine çalışmadı. :cry:

dediğiniz MadExcept bi denicem. hemen.

programı bilmiyorum (MadExcept).

prohram bir türlü hata yakalayamıyor. çok ilginç. adam hiç olmazsa bir hata kodu verir. windows direkt devreye giriyor. saçma sapan hata mesajını veriyor (windows kendi hata mesajı) programı küt diye kapatoyor. :cry:

yok böyle bir şey yaw..

teşşekkürler.

S.A.
Herkes cahildir, bazi konularda.
Kullanıcı avatarı
hi_selamlar
Üye
Mesajlar: 523
Kayıt: 05 May 2005 03:24
Konum: DelphiTürkiye.COM

Re: Hata Yakalama :(

Mesaj gönderen hi_selamlar »

A.S.
Jedi'nin böyle bir bug'ı var. Ancak yeni sürümlerde bu düzeltilmişti diye hatırlıyorum. Belki Jedi bileşenlerini güncellemeniz gerekmekte.

Ancak (hemen hemen) her türlü hatayı yakalayan bir bileşen (seti) var. MadExcept. Google'da aratırsanız çok kolay bulabilirsiniz. Yükledikten sonra kendisini delphi menülerine ekliyor. Bu menüyü seçtiğinizde handle exceptions seçeneğini seçtiğinizde hemen her türlü istisnayı gösteriyor.

Dolayısıyla oldukça yararlı.

Başarılar ve Saygılar
S.A.

acaba MadExcept nerden çekebilirim. Basic versiyonunu buldum kurdum. fakat nasıl kullanacağı bilmiyorum.

diğer versiyonları da şifre soruyor. acaba mümkünse bu programı nasıl bulup kurabilirim. nasıl ayarlama yapmam lazım. :oops:

kendi sitesinden çektim fakat sadece basic versiyonuınu kurabildim. diğerleri için program şifre gibi birşey soruyor.

teşekkürler.

S.A.
Herkes cahildir, bazi konularda.
Kullanıcı avatarı
Biltes
Üye
Mesajlar: 361
Kayıt: 11 Oca 2005 02:24
Konum: Edirne

Mesaj gönderen Biltes »

Hocam makinenizin bios'unda Hyper Trading özelliğini kapatıp bir de denermisiniz eğer sorun bundan değilse hazırladığınız projedeki kodları bir kez daha gözden geçirin. Sorun eğer bundan sa kapatmanızı tavsiye ederim eğer bir sakıncası yoksa...

Kolay gelsin...
Var olmaya değer her şey bilinmeye de değerdir. Çünkü bilgi varlığın bir imgesidir. Onda iyi ve kötü aynı anda bulunmaktadır...
Kullanıcı avatarı
hi_selamlar
Üye
Mesajlar: 523
Kayıt: 05 May 2005 03:24
Konum: DelphiTürkiye.COM

Mesaj gönderen hi_selamlar »

Biltes yazdı:Hocam makinenizin bios'unda Hyper Trading özelliğini kapatıp bir de denermisiniz eğer sorun bundan değilse hazırladığınız projedeki kodları bir kez daha gözden geçirin. Sorun eğer bundan sa kapatmanızı tavsiye ederim eğer bir sakıncası yoksa...

Kolay gelsin...
bunu bi deneyelim. gerçi bios a hiç bakmadım ama. kapatma özelliği umarım vardır. çok ilginç bir hata bu yaw. :cry:

bide bunu deneyelim.

teşekkürler..

S.A.
Herkes cahildir, bazi konularda.
Kullanıcı avatarı
Murat DİCLE
Kıdemli Üye
Mesajlar: 702
Kayıt: 19 Nis 2006 04:12
Konum: İstanbul
İletişim:

Mesaj gönderen Murat DİCLE »

Merhaba

http://www.madshi.net/ madexcept için buraya bakınız.

ayrıca ben jedinin bug yakalayıcısını kullanıyorum bununlada hatayı tespit edebilirsin. yada dilersen programı F9 ile çalıştır ve öyle debug et. hata verdiği yerde duracaktır.

bu tip hatalar sık karşıma çıkıyor, aylarca bulamadığım oluyor, ama inan bana hepside komik denecek dikkatsizlikler sonucu ortaya çıkıyor. umarım hatanın yerini bulabilirsin.

jedi ile hata yakalamak için şöyle yapmalısın.

ana unit içinde şunlar olmalıdır.

Kod: Tümünü seç

uses
   JclDebug,
   DateUtils,
   SqlTimSt,
   .
   .
   .
type
   TfrmMain = class(TForm)
   .
   .
   .
   private
      LastErrorFN : string;
      procedure AppError(Sender: TObject; E: Exception);
      .
      .
      .
implementation
.
.
.
procedure TfrmMain.FormCreate(Sender: TObject);
begin
   .
   .
   .
   Application.OnException := AppError;
   LastErrorFN := ExtractFilePath(Application.ExeName) + IntToStr(DateTimeToTimeStamp(Now).Date) + '-' + IntToStr(DateTimeToTimeStamp(Now).Time);
   .
   .
   .
end;
.
.
.
procedure TfrmMain.AppError(Sender: TObject; E: Exception);
var T : TStringList;
    Y : TStringList;
begin
  T := TStringList.Create;
  Y := TStringList.Create;
  if fileExists(LastErrorFN+'.txt') then T.LoadFromFile(LastErrorFN+'.txt');
  Y.Add('Hata Zamanı: ' + DateTimeToStr(Now));
  Y.Add('Orjinal hata mesajı --> ' + E.Message);
  Y.Add('Jedi''nin yakaladıkları;');
  JclLastExceptStackListToStrings(Y, True, True, True, True);
  Y.Add('');
  T.AddStrings(Y);  { TODO : bunu bize göndersin }
  T.SaveToFile(LastErrorFN+'.txt');
  T.Free;
  Y.Free;
end;
.
.
.
.
initialization
  // Enable raw mode (default mode uses stack frames which aren't always generated by the compiler)
  Include(JclStackTrackingOptions, stRawMode);
  Include(JclStackTrackingOptions, stAllModules);
  Include(JclStackTrackingOptions, stStaticModuleList);

  // Initialize Exception tracking
  JclStartExceptionTracking;
finalization

  // Uninitialize Exception tracking
  JclStopExceptionTracking;

end.
ben bu şekilde çok hata ayıkladım. programı F9 ile çalıştırmadanda direk EXE sini çalıştırarak bir hata meydana geldiğinde EXE nin bulunduğu dizine log dosyası atıyor. dilersen oluşan bu hatayı bir URL ile kendinde bile toplayabilirsin..

Saygılar...
Akin_Delphi
Üye
Mesajlar: 163
Kayıt: 06 Nis 2006 12:22

Re: Hata Yakalama :(

Mesaj gönderen Akin_Delphi »

hi_selamlar yazdı: S.A.

acaba MadExcept nerden çekebilirim. Basic versiyonunu buldum kurdum. fakat nasıl kullanacağı bilmiyorum.

diğer versiyonları da şifre soruyor. acaba mümkünse bu programı nasıl bulup kurabilirim. nasıl ayarlama yapmam lazım. :oops:
Basic versiyonunun işinizi görmesi gerekiyor. Ben D5.1'e yüklemiştim. D5.1'de Project menüsüne MadExcept diye kendisini ekliyor. Bu menüye tıkladığınızda çıkan ekranda Handle Exceptions gibi bir seçenek olması lazım. Bunu işaretledikten sonra uygulamay build ediniz, sorun çıkan bilgisayarda çalıştırdığınızda, hata meydana geldiğinde MadExcept'in hata ekranı çıkması lazım. Ancak daha önce dediğim gibi hemen hemen her hatayı buluyor, bütün hataları değil.

Saygılar ve Başarılar
Cevapla