none
API - fazla istek, bağlantı kopması gibi durumlarda programın devam etme sorunu RRS feed

  • Soru

  • Merhaba, programım 1 sn aralıklarla api ile veri çekiyor. Fakat karşı bağlantının kopması, internetin kesilmesi, fazla istekten dolayı atma vs. gibi veri alamama durumlarında program her defasında beni programdan atıyor. Try Catch kullandım fakat hata kodunu görmekten başka ilerleyemedim. Benim ihtiyacım olan her hangi bir sebepten veri alamama durumunda programdan atıp programı kesmesi yerine textbox veya listbox a sadece hata kodu veya bağlantı sağlanamadı gibi bir not düşüp tekrar 1 sn aralıklarda api isteği göndererek veri alsın veya almasın programa devam etmesi. Yardımlarınızı bekliyorum. Teşekkür ederim.

    13 Kasım 2019 Çarşamba 22:55

Yanıtlar

  • Try Catch bloğunda catch içerisine hatayı mesaj olarak göstererek değil bir txt dosyasına log olarak kaydedin. Hata verse bile timer'a göre sonraki ilk çalışmasında yeniden baştan başlayacaktır... Sizde hataları bu log.txt dosyası içerisinden takip edebilirsiniz. (exe'nin bulunduğu yere yeni metin belgesi oluşturulup Log.txt adını vermeyi unutmayın)

    catch (Exception Ex)
                {
                    //MessageBox.Show("HATA : " + Environment.NewLine + Ex.ToString());
                    StreamWriter LogYaz = new StreamWriter(System.IO.Path.GetDirectoryName(Application.ExecutablePath) + "\\Log.txt", append: true);
                    LogYaz.Write(DateTime.Now.ToString());
                    LogYaz.Write(Environment.NewLine + Ex.ToString());
                    LogYaz.WriteLine(Environment.NewLine + "-------------------------------");
                    LogYaz.Close();
                }


    • Düzenleyen XentoX 14 Kasım 2019 Perşembe 07:30
    • Yanıt Olarak İşaretleyen esperavan 28 Kasım 2019 Perşembe 20:30
    14 Kasım 2019 Perşembe 07:29

Tüm Yanıtlar

  • Try Catch bloğunda catch içerisine hatayı mesaj olarak göstererek değil bir txt dosyasına log olarak kaydedin. Hata verse bile timer'a göre sonraki ilk çalışmasında yeniden baştan başlayacaktır... Sizde hataları bu log.txt dosyası içerisinden takip edebilirsiniz. (exe'nin bulunduğu yere yeni metin belgesi oluşturulup Log.txt adını vermeyi unutmayın)

    catch (Exception Ex)
                {
                    //MessageBox.Show("HATA : " + Environment.NewLine + Ex.ToString());
                    StreamWriter LogYaz = new StreamWriter(System.IO.Path.GetDirectoryName(Application.ExecutablePath) + "\\Log.txt", append: true);
                    LogYaz.Write(DateTime.Now.ToString());
                    LogYaz.Write(Environment.NewLine + Ex.ToString());
                    LogYaz.WriteLine(Environment.NewLine + "-------------------------------");
                    LogYaz.Close();
                }


    • Düzenleyen XentoX 14 Kasım 2019 Perşembe 07:30
    • Yanıt Olarak İşaretleyen esperavan 28 Kasım 2019 Perşembe 20:30
    14 Kasım 2019 Perşembe 07:29
  • "1 sn aralıklarla api ile veri çekiyor"

    böyle bir şeyin doğru olduğuna nasıl emin oldunuz? Yani zamana bağlı bir işlem yapmak doğrumudur?


    e-mail: onay[nokta]yalciner[at]hotmail[nokta]com

    14 Kasım 2019 Perşembe 07:42
    Moderatör
  • Teşekkür ederim, sorunu çözdüm sonunda bende catch kısmına yoğunlaşmıştım ama sorun çıkaran kodların tamamını try içerisine almamışım. Basit bir hata beni baya uğraştırdı. 

    15 Kasım 2019 Cuma 13:50
  • Karşı api bana ait olmadığı için timer ile düzenli saniyelik veriyi direkt alıyorum. Hatta süreyi daha da kısaltacağım, büyük ihtimal proxy de kullanmak gerekecektir.

    Sizin önerebileceğiniz başka yol var mıdır?  Teşekkür ederim.

    15 Kasım 2019 Cuma 13:56