«error-handling» etiketlenmiş sorular

Hataları ve istisnaları ele alma ile ilgili sorular. Wikipedia'ya göre, İstisna yönetimi, hesaplama sırasında, özel işlem gerektiren anormal veya istisnai olaylar - genellikle programın normal yürütme akışını değiştiren istisnaların ortaya çıkmasına yanıt verme sürecidir. Özel programlama dili yapıları veya bilgisayar donanım mekanizmaları tarafından sağlanır.

11
Bir REST API, bir sorgunun var olmayan bir nesneye başvurduğunu belirtmek için 500 Dahili Sunucu Hatası döndürmeli midir?
Çok sayıda IoT aygıtının verilerini işleyen bir sunucuda bulunan bir REST API ile çalışıyorum. Görevim, söz konusu cihazlar hakkında belirli performans bilgilerini toplamak için API'yi kullanarak sunucuyu sorgulamak. Bir örnekte, kullanılabilir cihazların ve bunlara karşılık gelen tanımlayıcıların bir listesini edindim, daha sonra bu tanımlayıcıları (GUID'ler) kullanarak daha fazla ayrıntı için …

6
Bir hata hakkında ne kadar bilgi kullanıcıya gösterilmeli?
Uygulamalar her zaman hata atabilir. Eğer böyle bir hata meydana gelirse, kullanıcıya bildirilmesi gerekir, çünkü başvurunun yapmasını istediği şey başarılı olamadı. Ancak, kullanıcıya ne kadar bilgi verilmelidir? Sanırım çoğumuz bir yığın izlemeyi göstermemeye katılıyoruz ( Bir yığın izlemesi kullanıcıya sunulan hata iletisinde mi olmalı? ), Ancak hata içeriğinin geri kalanı …

15
Mantıksal operatörler olarak Try / Catch'i kullanmaya karşı veya bununla ilgili argümanlar [kapalı]
Şirketlerimizde Try-Catch bloklarını mantıksal operatörler olarak kullanan bazı hoş kodları keşfettim. Anlamı, "bir kod uygulayın, eğer bu hatayı atarsa, bu kodu yapın, ancak bu hatayı atarsa, bunun yerine bu 3. şeyi yapın". Göründüğü gibi "else" ifadesini "Son" olarak kullanır. Bunun doğal olarak yanlış olduğunu biliyorum, ancak kavga almaya başlamadan önce …

7
Hata bastırmaya karşı argümanlar
Projelerimizden birinde bunun gibi bir kod parçası buldum: SomeClass QueryServer(string args) { try { return SomeClass.Parse(_server.Query(args)); } catch (Exception) { return null; } } Anladığım kadarıyla, bunun gibi hataları bastırmak kötü bir uygulamadır, çünkü orijinal sunucunun istisnasından yararlı bilgileri yok eder ve kodu gerçekten sonlandırması gerektiğinde devam etmesini sağlar. Bu …

9
Çok fazla iddia yazmak mümkün mü?
assertProgramımdaki mantıksal hatalar nedeniyle gerçekleşmeyen olayları yakalamanın bir yolu olarak C ++ kodunda çek yazmanın büyük bir hayranıyım . Bu genel olarak iyi bir uygulamadır. Ancak, yazdığım bazı fonksiyonların (karmaşık bir sınıfın parçası olan) okunabilirlik ve bakım açısından potansiyel olarak kötü bir programlama uygulaması olabileceğini düşünen 5+ varsayımına sahip olduğunu …

3
0000000C adresi özel bir adres midir?
Programlarken bazen işler bozulur. Bir hata yaptınız ve programınız yanlış bir adresten okumaya çalışıyor. Bu istisnaların sıkça olduğu gibi bana dikkat çeken bir şey: Access violation at address 012D37BC in module 'myprog.exe'. Read of address 0000000C. Şimdi birçok hata günlüğü görüyorum ve bana göre en dikkat çeken şey: 0000000C. Bu …

7
İstisnaları, hataları erken “yakalamak” için araç olarak kullanmak uygun mudur?
Sorunları erken yakalamak için istisnalar kullanırım. Örneğin: public int getAverageAge(Person p1, Person p2){ if(p1 == null || p2 == null) throw new IllegalArgumentException("One or more of input persons is null"). return (p1.getAge() + p2.getAge()) / 2; } Programım nullbu fonksiyona asla geçmemelidir . Asla niyetinde değilim. Ancak hepimizin bildiği gibi, …


6
boş işaretçiler vs.
Atıf: Bu, ilgili bir P.SE sorusundan ortaya çıktı Arkaplanım C / C ++ dilinde, ancak Java'da adil bir miktarda çalıştım ve şu anda C # kodluyorum. C arka planım nedeniyle, geçen ve iade edilen işaretçilerin kontrol edilmesi ikinci eldir, ancak bakış açımın önyargılı olduğunu kabul ediyorum. Kısa bir süre önce …

4
İşlevsel stil istisnası işleme
İşlevsel programlamada birinin istisnalar atmaması ve / veya gözetmemesi gerektiği söylendi. Bunun yerine hatalı bir hesaplama en düşük değer olarak değerlendirilmelidir. Python'da (veya işlevsel programlamayı tam olarak desteklemeyen diğer dillerde ), "saf kalmaya" ters giden bir şey yanlış giderse, ancak tanımlamaya kesinlikle uymuyorsa ) bir kişi geri dönebilir None(veya en …

3
C # 'da, bir try bloğunda değişkenler neden kapsamda sınırlı olarak bildiriliyor?
Aşağıdakilere hata işleme eklemek istiyorum: var firstVariable = 1; var secondVariable = firstVariable; Aşağıdaki derlenmeyecek: try { var firstVariable = 1; } catch {} try { var secondVariable = firstVariable; } catch {} Bir try catch bloğunun diğer kod blokları gibi değişkenlerin kapsamını etkilemesi neden gereklidir? Tutarlılık-kenara bir yana, kodumuzu …

2
Haskell'deki hataları bildirmenin en temiz yolu
Haskell öğrenmek için çalışıyorum ve yazdığım fonksiyonlarda hatalarla başa çıkmak için üç farklı yolla karşılaştım: error "Some error message."Bir istisna atan basitçe yazabilirim . İşlev geri dönüşümü Maybe SomeTypeyapabilirim, geri dönmek istediğim şeyi geri verebilirim veya geri verebilirim. İşlevime geri döndürebilirim Either String SomeType, burada bir hata mesajı veya ilk …

3
Komutta doğrulama sonrası hatalar nasıl ele alınır (DDD + CQRS)
Bir Kayıt formu göndermek Örneğin, check-in zorunda Domain Model( WriteModeliçinde CQRSgeçerli bir durumda (örneğin, e-posta adresi sözdizimi, yaş, vs) olduğunu). Sonra a oluşturur Commandve a'ya gönderirsiniz Command Bus. Komutların hiçbir şey döndürmemesi gerektiğini anlıyorum. Öyleyse ötesinde bir hatayı nasıl ele alırsınız Command Bus? (Örneğin, bir kullanıcı 1 saniye önce aynı …

2
Çok Katmanlı Mimari: nerede hata günlüğü \ işleme uygulamak gerekir?
Şu anda çok katmanlı bir mimariye sahip büyük bir alt sistemi yeniden düzenliyorum ve etkili bir hata günlüğü tutma / işleme stratejisi tasarlamaya çalışıyorum. Diyelim ki mimarim aşağıdaki üç katmandan oluşuyor: Genel Arayüz (IE ve MVC Kontrol Cihazı) Alan Adı Katmanı Veri Erişim Katmanı Benim karışıklık kaynağı nerede hata günlüğü …


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.