«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.

4
PHP'de "OR DIE ()" nasıl çalışır?
Bir MySQL veritabanına erişmek için bir php uygulaması yazıyorum ve bir öğreticide, formda bir şeyler söylüyor mysql_connect($host, $user, $pass) or die("could not connect"); PHP, kalıp parçasını çalıştıracak şekilde işlevin başarısız olduğunu nasıl biliyor? Sanırım bunun "veya" kısmının nasıl çalıştığını soruyorum. Daha önce gördüğümü sanmıyorum.


14
Std :: exception'dan miras almalı mıyım?
En az bir güvenilir kaynak gördüm (aldığım bir C ++ sınıfı), C ++ 'daki uygulamaya özel istisna sınıflarının std::exception. Bu yaklaşımın faydaları konusunda net değilim. C # 'da miras ApplicationExceptionalmanın nedenleri açıktır: bir avuç kullanışlı yöntem, özellik ve kurucu elde edersiniz ve ihtiyacınız olanı eklemeniz veya geçersiz kılmanız yeterlidir. İle …

3
İstisnai durumda tam yığın izleme nasıl yazdırılır?
Örneğin, tek bir yerde ... //---------------a try { // some network call } catch(WebException we) { throw new MyCustomException("some message ....", we); } ... ve başka bir yerde ... //--------------b try { // invoke code above } catch(MyCustomException we) { Debug.Writeline(we.stacktrace); // <---------------- } Yazdırdığım yığın izleme, yalnızca a'dan b'ye …

5
R'de istisna işleme [kapalı]
Kapalı. Bu soru Yığın Taşması yönergelerini karşılamıyor . Şu anda cevapları kabul etmiyor. Bu soruyu geliştirmek mi istiyorsunuz? Yığın Taşması için konuya uygun olması için soruyu güncelleyin . 4 yıl önce kapalı . Bu soruyu geliştirin R'de istisna işleme örnekleri / öğreticileri olan var mı? Resmi belgeler çok kısa.

3
"Catch, when" ile istisnaları yakalama
C # 'da bir catch işleyicinin belirli bir koşul karşılandığında çalıştırılmasına izin veren bu yeni özelliğe rastladım. int i = 0; try { throw new ArgumentNullException(nameof(i)); } catch (ArgumentNullException e) when (i == 1) { Console.WriteLine("Caught Argument Null Exception"); } Bunun ne zaman yararlı olabileceğini anlamaya çalışıyorum. Bir senaryo şuna …

7
C ++ 'da bir istisnanın nereye atıldığını nasıl bulabilirim?
Bir yerde yakalanmamış bir istisna atan bir programım var. Aldığım tek şey, bir istisnanın atıldığına dair bir rapor ve bunun nereye atıldığına dair hiçbir bilgi yok. Derlenmiş bir programın hata ayıklama sembolleri içermesinin, kodumun neresinde bir istisnanın üretildiğini bana bildirmemesi mantıksız görünüyor. İstisnalarımın gdb'de 'yakalama atışı' ayarlamadan ve atılan her …

4
Python'da doğru şekilde istisna mesajı nasıl alınır
Python'daki standart kitaplık bileşenlerinden istisna mesajlarını almanın en iyi yolu nedir? Bazı durumlarda bunu aşağıdaki messagegibi alan yoluyla alabileceğinizi fark ettim : try: pass except Exception as ex: print(ex.message) ancak bazı durumlarda (örneğin, soket hataları olması durumunda) şuna benzer bir şey yapmanız gerekir: try: pass except socket.error as ex: print(ex) …

4
Ruby özel hata sınıfları: mesaj özniteliğinin kalıtımı
Özel istisna sınıfları hakkında fazla bilgi bulamıyorum. Ne biliyorum Özel hata sınıfınızı bildirebilir ve miras almasına izin StandardErrorverebilirsiniz, böylece rescued olabilir : class MyCustomError < StandardError end Bu, aşağıdakileri kullanarak yükseltmenizi sağlar: raise MyCustomError, "A message" ve daha sonra, kurtarırken bu mesajı alın rescue MyCustomError => e puts e.message # …

15
C hata yönetimi için geçerli goto kullanımı?
Bu soru aslında bir süre önce programlama.reddit.com'daki ilginç bir tartışmanın sonucudur . Temel olarak aşağıdaki koda indirgenir: int foo(int bar) { int return_value = 0; if (!do_something( bar )) { goto error_1; } if (!init_stuff( bar )) { goto error_2; } if (!prepare_stuff( bar )) { goto error_3; } return_value …

10
Bir 404'ü nasıl yakalayabilirim?
Takip koduna sahibim: HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.Method = "HEAD"; request.Credentials = MyCredentialCache; try { request.GetResponse(); } catch { } Belirli bir 404 hatasını nasıl yakalayabilirim? WebExceptionStatus.ProtocolError yalnızca bir hata oluştuğunu algılayabilir, ancak hatanın tam kodunu vermez. Örneğin: catch (WebException ex) { if (ex.Status != WebExceptionStatus.ProtocolError) { throw ex; } …

4
Yapıları karşılaştırırken bu neden bir format istisnası atıyor?
İki System.Drawing.Sizeyapının eşitliğini ileri sürmeye çalışıyorum ve beklenen iddia hatası yerine bir format istisnası alıyorum. [TestMethod] public void AssertStructs() { var struct1 = new Size(0, 0); var struct2 = new Size(1, 1); //This throws a format exception, "System.FormatException: Input string was not in a correct format." Assert.AreEqual(struct1, struct2, "Failed. Expected …

4
Try / catch / nihayetinde beklemek için iyi bir çözüm mü?
İstisnayı (yığın izlemesi ile) tekrar atmadan önce asyncbir catchblokta bir yöntemi çağırmam gerekiyor : try { // Do something } catch { // <- Clean things here with async methods throw; } Ama maalesef awaitbir catchveya finallyblokta kullanamazsınız . Bunu öğrendim çünkü derleyicinin catchsizin awaittalimatınızdan sonra olanı yürütmek için bir …

1
Yesod'daki istisnalar
Çok ilkel bir biçim ipc(telnet ve belirli kelimeleri belirli bir sırayla içeren bir String gönder) kullanan bir arka plan programı oluşturmuştum . Bundan kurtuldum ve şimdi JSONiletileri bir Yesodsunucuya iletmek için kullanıyorum . Ancak, tasarımımda gerçekten sevdiğim bazı şeyler vardı ve şu anda seçimlerimin ne olduğundan emin değilim. İşte yaptığım …

25
Integer.parseInt () 'i kapsüllemenin iyi bir yolu
Integer.parseInt()String'i int türüne dönüştürmek için sıklıkla kullandığımız bir projem var . Bir şeyler ters gittiğinde (örneğin, Stringbir sayı değil, harf aveya her neyse), bu yöntem bir istisna atacaktır. Ancak, kodumdaki istisnaları her yerde ele almak zorunda kalırsam, bu çok çabuk çirkin görünmeye başlar. Bunu bir yönteme koymak isterim, ancak, dönüşümün …

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.