«exception-handling» etiketlenmiş sorular

İstisna, programın normal akışından sapma gerektiren alışılmadık bir durumdur. Normalde, bir istisna toplam başarısızlığa neden olmamalı, bunun yerine bir istisna işleyicisi katılmalıdır. İstisna işleme, birçok programlama dilinde yerleşik bir yapıdır. Genellikle istisnalar, yığının çözülmesi, böylece istisnanın kapsamı dışında belirli bir duruma geri döndürülmesi ve daha sonra bir işleyici bloğunun veya rutininin başlatılmasıyla ele alınır.

8
Bir şeyi 'denemek' ve istisnayı yakalamak veya bir istisnayı önlemek için ilk önce mümkün olup olmadığını test etmek daha mı iyi?
Bir ifşeyin geçerli olduğunu test etmeli miyim yoksa sadece trybunu yapmalı ve istisnayı yakalamalıyım? Tek yönün tercih edildiğini söyleyen sağlam belgeler var mı? Tek yönlü daha pitonik mi? Örneğin: if len(my_list) >= 4: x = my_list[3] else: x = 'NO_ABC' Veya: try: x = my_list[3] except IndexError: x = 'NO_ABC' …



2
UnhandledExceptionEventArgs.ExceptionObject neden bir Exception değil, bir nesne?
Neden UnhandledExceptionEventArgs.ExceptionObjectbir nesne değil de bir nesne Exception? Ekliyorum AppDomain.UnhandledException. Ben döküm istiyorum UnhandledExceptionEventArgs.ExceptionObjectbir etmek Exceptionve onu interogate. Ve bunu akılda tutarak hiç boş kalacak mı? MSDN belgelerine exatly yararlı değildir. İşlenmeyen istisna nesnesini alır.

5
Bir değişkene traceback / sys.exc_info () değerleri nasıl kaydedilir?
Hatanın adını ve geri izleme ayrıntılarını bir değişkene kaydetmek istiyorum. İşte benim girişimim. import sys try: try: print x except Exception, ex: raise NameError except Exception, er: print "0", sys.exc_info()[0] print "1", sys.exc_info()[1] print "2", sys.exc_info()[2] Çıktı: 0 <type 'exceptions.NameError'> 1 2 <traceback object at 0xbd5fc8> Istenilen çıktı: 0 NameError …

6
Python'da "nihayet" her zaman mı çalışır?
Python'daki herhangi bir olası deneme bloğu için, finallybloğun her zaman yürütüleceği garanti ediliyor mu? Örneğin, bir bloktayken döndüğümü exceptvarsayalım: try: 1/0 except ZeroDivisionError: return finally: print("Does this code run?") Ya da belki bir Exception: try: 1/0 except ZeroDivisionError: raise finally: print("What about this code?") Test, finallyyukarıdaki örnekler için bunun yürütüldüğünü …

10
Yay Yeniden Şablonu istisna işleme
Kod parçacığı aşağıdadır; Temel olarak, hata kodu 200'den başka bir şey olduğunda istisnayı yaymaya çalışıyorum. ResponseEntity<Object> response = restTemplate.exchange(url.toString().replace("{version}", version), HttpMethod.POST, entity, Object.class); if(response.getStatusCode().value()!= 200){ logger.debug("Encountered Error while Calling API"); throw new ApplicationException(); } Ancak sunucudan 500 yanıt alınması durumunda istisna alıyorum org.springframework.web.client.HttpServerErrorException: 500 Internal Server Error at org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:94) ~[spring-web-4.2.3.RELEASE.jar:4.2.3.RELEASE] …


5
Python'da yakalanan istisnanın adı nasıl alınır?
Python'da ortaya çıkan bir istisnanın adını nasıl alabilirim? Örneğin, try: foo = bar except Exception as exception: name_of_exception = ??? assert name_of_exception == 'NameError' print "Failed with exception [%s]" % name_of_exception Örneğin, birden çok (veya tümünü) istisnayı yakalıyorum ve istisnanın adını bir hata mesajında ​​yazdırmak istiyorum.





12
Çalışmayan işlenmeyen istisnalarda Visual Studio 2015 kesintisi
Visual Studio'nun önceden "İşlenmeyen istisnayı kır" için belirli bir onay kutusu vardı. 2015'te bu kaldırıldı (veya bulamadığım bir yere taşındı). Bu nedenle, kullanıcı düzeyinde bir istisna işleyicisi sağlayamazsam dönüştürülen projelerim artık bozulmuyor. Tüm "atılmış istisnaları" kırmak istemiyorum çünkü belirli olanlarla ilgileniyorum. Tam da belirli bir işleyici sağlayamadığım yer. Şu anda …

7
Yakalanmamış istisnayı ele alıp günlük dosyası göndermeniz gerekiyor
GÜNCELLEME: Lütfen aşağıdaki "kabul edilen" çözüme bakın Uygulamam basitçe sonlandırmak yerine işlenmeyen bir istisna oluşturduğunda, öncelikle kullanıcıya bir günlük dosyası gönderme fırsatı vermek istiyorum. Rastgele bir istisna aldıktan sonra daha fazla iş yapmanın riskli olduğunun farkındayım, ancak en kötüsü uygulamanın çökmesini bitirmesi ve günlük dosyasının gönderilmemesidir. Bu beklediğimden daha yanıltıcı …

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.