2010-10-19 24 views
5

Java'da Eclipse'de Programlama, istisnalarla uğraşmak zorundayım. VisualStudio ile C# içinde bir yönteme "istisna atar" diyemedim ... Kodlamadan sonra bir çok istisna buldum ve test sırasında onları bulduğum şekilde yakalamak zorunda kaldım. Bunları işlemek zorunda kalmak isterim, böylece VisualStudio burada bir yakalamaya ihtiyacınız olduğunu söyleyebilsin ya da gitmene izin vermeyeceğim :) Bu mümkün mü?İstisna işleme gücü yok mu?

Teşekkürler

cevap

8

Hayır. C#, sizi istisnaları işlemeye zorlamıyor. Bu, dil tasarımcılarının bir parçası olarak bilinçli bir tasarım kararıydı.

Nedeniyle ilgili ayrıntılar için, bkz. The Trouble With Checked Exceptions, burada Anders Hejlsberg, neden C# un bir parçası olmadığını tartışır.

+0

Oh, çok kötü :) Cevabınız için teşekkürler! – Johannes

+0

Hataya eğilimli olduğu iddia edilmesine rağmen, bir programcıya "Ne yaptığımı biliyorum" durumunu bildiren bir özgürlük veriyor. –

+0

@Johannes: Bunu "kötü" olarak düşünmeden önce, bu röportajı okudum. Bunun C# 'daki bir kusur olduğunu düşünürdüm, ama tamamen bir "profesyonel" olarak görmeye dönüştüm ... –

0

Hayır, bu mümkün değil.

Yapabilecekleriniz, MSDN'de yürüttüğünüz .NET kitaplığı yöntemini aramaktır: yöntem tarafından atılması beklenen istisnalar burada belgelenmiştir. Daha sonra, hangisini yakalamak istediğinize ve hangileriyle ilgilenmek istemediğinize karar verebilirsiniz.

+0

Tüm belgelere bakmaktan daha iyi bir yol yok mu? Bana sorarsan Visual Studio'da bunu yapabilmek için bir olasılık olmalı :) :) "Sağ tıklatma -> açık olan istisnalar olabilir" :) – Johannes

+0

@Johannes: Doğru, bu güzel olurdu, ama Visual Studio'daki hassas yardım oldukça iyi (sadece isminin üzerinde imleci varken F1'e vur), belgelere bakmak oldukça hızlı ilerliyor. – Heinzi

0

İstisnaları bulmak için various tools kullanabilirsiniz. Önkoşul/sonrası koşulları ve olasılıkla'u kullanmanıza yardımcı olan Kod Sözleşmeleri olarak adlandırılan .NET 4 için bu özellik de bazı istisnaları önler.

2

Hayır C#'de kontrol edilmiş istisnalar bulunmamaktadır. Ve nedenleri oldukça basit:

1) onlar orada elde değil her bunları açıkça ele veya zincir onları geçen ya önerilen uygulama izlediğinden amacını amaçlanan değil eğilimindedir. Bunun yerine, gerçekleşen şey, geliştiricilerin dev yığınının ortasında "yenmesi" dir.
2) onlar doğal belgelerin parçası yerine çalıştırılabilir kod olduğundan, bunlar belgelerin gidip dev araçları

3) C#/Çerçeve dokümantasyon böyle için ideal yerlerdir kod yüzeyini yığılmayı olmamalıdır dokümantasyon. Görsel stüdyo Nesne tarayıcısı ile oynayın, yönteme göz atın ve alt bölmede belirtilenleri göreceksiniz.

İlgili konular