MVC'de İstisna İşleme [İstisnayı İşleme İçin En İyi 2 Yöntem]
Yayınlanan: 2020-12-29MVC'de özel durum işleme , büyük ölçüde, belirli özellikler ve koşullar gerektiren ve benzersiz gereksinimleri olan iş kolu uygulamaları oluşturulurken kullanılır.
Hangi istisna işlemenin derinlemesine olduğunu ve uygulamalarınızda size nasıl yardımcı olduğunu anlayalım.
İçindekiler
İstisna İşleme Nedir?
Meydana gelen ve özel yöntemler gerektiren istisnai durumları ele alma ve bunlara yanıt verme sürecidir; sonucu iyileştirmek ve tüm gereksinimlerin uygun şekilde ele alındığından emin olmak için bunun iş uygulamalarına dahil edilmesi gerekir.
Bu istisnaların ele alınmasının iki önemli yolu vardır.
- Yakala ve engelle yöntemi
- Uygulama hatası işleme yöntemi.
Ancak, bunlar süreç için kullanılan tek yöntemler değildir.
Burada, MVC'deki istisnaları yönetmek için kullanabileceğiniz farklı adımları ve teknikleri tartışacağız.
Try-Catch İşleme Yöntemi
Yakala ve engelle yöntemi, MVC tabanlı uygulamalarda istisna işleme için kullanılan geleneksel yöntem olarak kabul edilir . Bu yöntemi kullanarak hata bilgilerini günlüğe kaydedeceksiniz.

Denemek
{ bir istisna ekleyin;}
yakalamak (istisna adı)
{
dönüş Görünümü (“Hata”);
}
İstisna koşulunu try bloguna girersiniz ve catch bloğu için istisna adını eklersiniz. Catch bloğunda istisna yakalandığında, bahsettiği hatayı döndürür.
Bu, uygulama içindeki tüm hataları işlemek ve günlüğe kaydetmek için de kullanılabilir.
OnException Yöntemi
Bu yöntem, denetleyici sınıfı içindeki OnException yöntemini geçersiz kılmanıza olanak tanır. 500 hata kodu, MVC'de istisna işlemeden kaynaklanan tüm günlüğe kaydedilen hataları işlemek için kullanılır .
Temel olarak, try döngüsü olmadan bu yöntemle istisnanın görünümünü kaydedebilir ve belirtebilirsiniz. Bu yöntemi kullanmaya başlamak için web.config'de <customErrors> yapılandırmasını etkinleştirmeniz gerekmez.
genel sınıf HomeController: Denetleyici
{
public ActionResult Contact()
{
string msg = boş;
ViewBag.Message = msg.Length;
Görünümü döndür();
}
korumalı geçersiz kılma geçersiz OnException(ExceptionContext filterContext)
{
filterContext.ExceptionHandled = true;
//Hatayı günlüğe kaydet!!
// Eyleme yönlendir
filterContext.Result = RedirectToAction(“Hata”, “InternalError”);
// VEYA belirli görünümü döndür
filterContext.Result = yeni ViewResult
{
GörünümAdı = “~/Görünümler/Hata/InternalError.cshtml”
};
}
}
Yukarıdaki koda bir göz atın ve OnException'ın bir void yöntemi olduğunu ve argüman olarak ExceptionContext nesnesini aldığını fark edeceksiniz.
Bu bağımsız değişken, hatayı günlüğe kaydetmek için gereken tüm bilgileri içerir. ExceptionHandled=true ayarlarsanız, belirli bir denetleyiciden oluşturulan eylemleri kolaylıkla günlüğe kaydedebilirsiniz.
HandleError Özniteliği
Bu, uygulamanızın MVC'sindeki istisnayı ele almanın ve hataları yönetmenin bir başka popüler yöntemidir. Bir eylem yöntemi veya denetleyici tarafından oluşturulan hataları fark ederseniz, bu yöntemi kullanmalısınız.
Bu öznitelikle, belirli bir istisna için özel bir görünüm görüntülemeyi seçebilirsiniz. Bu, eylem yönteminde veya denetleyicide meydana gelebilir.
Yine bu yöntem, 500 kodlu hataları yönetirken de kullanılır. Bu yöntemi kullanarak istisnaları günlüğe kaydedemezsiniz.
Emrinizde çalışması için bu özelliği eklemenin belirli bir yolu vardır. HandleError öznitelik filtresini FilterConfig.RegisterGlobalFilters() yönteminin içine eklemelisiniz.
Bununla birlikte, web.config içinde <CustomErrors mode = “on”> özel hatalar modunun her zaman açık olarak ayarlandığından emin olmalısınız. Bu noktada özelliği aktif moda ekleyebilirsiniz.

genel sınıf HomeController: Denetleyici
{
[İşlem Hatası]
public ActionResult Contact()
{
string msg = boş;
ViewBag.Message = msg.Length;
Görünümü döndür();
}
}
Az önce bahsettiğimiz kod, bağlam ve istisna işleme ihtiyaçları için en iyi sonucu verir.
Burada öznitelik Contact() eylem yöntemi için yapılandırılır. İşlem derlendiğinde, görüntüleme modunda görüntülenen Error.cshtml'yi göreceksiniz.
Bu, yalnızca bir istisna oluştuğunda gerçekleşir. Bu, tüm istisnai durumlarda varsayılan görünümdür. Bu özelliği, farklı istisna türlerini yönetmek üzere çeşitli sayfaları yapılandırmak için de kullanabilirsiniz.
Bu öznitelik, hata işleme için mükemmel bir şekilde çalışsa ve her türlü konfigürasyonu yönetse de, her yerde çalışmayabilir. Uygulamanıza yardımcı olacağına inandığınız bazı durumlar için seçin.
Yöntem, günlüğe kaydetme istisnalarını desteklemiyor. Yalnızca kod 500 içindeki HTTP istisnalarını yakalamayı başarır. Diğer denetleyicilerden gelen istisnaları yakalayamaz. Bu nedenle, tüm durumlar ve ihtiyaçlar için göz önünde bulundurabileceğiniz bir özellik değildir.
HandleError'dan Devralma
İstisnaları işlemek için bu yöntemi bile kullanabilirsiniz. Bahsettiğimiz yukarıdaki yöntem, bir dezavantaj olarak kabul edilebilecek bileşenleri yeniden kullanmanıza izin vermiyor.
Kaydedilmesi gereken tüm istisnalar için kodlamaya devam etmeniz gerekiyorsa çalışamazsınız.
Sonuç olarak, bu uzantıyı kullanmanız gerekecek. HandleError özniteliğinden devralmanıza ve bunu belirli denetleyicide kullanmanıza olanak tanır. Sonuç olarak, çok sık kod yazmak zorunda kalmadan istisnaları işleyebilirsiniz.
Ayrıca Okuyun: İstisna İşleme Mülakat Soruları
Application_Error Olayı
Application_Error Event, Uygulama hatasını ele almanın ve istisnaları yönetmenin başka bir yöntemidir. Bu bölüm, global.asax dosyasındaki Application_Error olayını kontrol etmenizi gerektirir.
MVC'de her tür hata kodu ve istisna işleme için bu olayı tetikleyebilirsiniz , bu da kullanımı kolaylaştırır ve istisnaları işlemek için en iyi yöntemlerden biridir.
Bu, uygulamada işlenmeyen tüm istisnaları yönetmek için kullanılabilen birincil hata günlüğü yöntemini kullanır.
HTTP Hatalarını Yönetme
Burada bahsedilen yöntem, HTTP istisnalarından hiçbirini işleyemez. “Dosya Bulunamadı” gibi istisnalardan ve almanız gereken diğer yaygın hata mesajlarından bahsediyoruz.
Bu istisnaları yönetmek için sözdiziminde hata ayrıntılarını ve hata kodunu girmeniz gerekecektir.
Sözdizimini yayınlamadan önce, uygulamanın bir parçası olarak almanız muhtemel tüm olası hata kodlarını ve mesajlarını not etmeniz gerekecektir.
İş kolu uygulamaları konusundaki bilginizi geliştirmek ve programlama dillerinde yeterlilik kazanmak için upGrad'a katılın .
Bir dizi kurs ve bir dizi kariyer seçeneği ile kariyer fırsatlarınızı artıracaksınız.
Uzmanlarımızla bağlantı kurun veya sizin için kişiselleştirilmiş seçenekler hakkında daha fazla bilgi edinmek için bizi arayın.
Dünyanın En İyi Üniversitelerinden Yazılım Mühendisliği Kurslarına Kaydolun . Kariyerinizi hızlandırmak için Yönetici PG Programları, Gelişmiş Sertifika Programları veya Yüksek Lisans Programları kazanın.

Çözüm
MVC'de istisna işleme ile uğraşırken , seçtiğiniz yöntemin tüm olası hataları kaydetmenize izin verdiğinden emin olmanız gerekir. Bileşenleri yeniden kullanabilmeli ve tüm uygulama hatalarını yönetebilmelisiniz. Java'da özel durum işleme hakkında bilgi edinin.
Tüm olası istisnaları işlemek için tek bir yöntem istiyorsanız, Global Application_Error yöntemini seçmelisiniz. Tüm hataları <CustomErrors> ile birlikte günlüğe kaydetmeyi ve Web.Config'e kaydedilmelerini sağlar.
Bu yöntemle kullanıcı hata ile karşılaştığında ilgili sayfalara yönlendirilir. Özel durum işleme, ASP.Net MVC kullanarak uygulama geliştirmenin temel kavramlarından biridir.
Bu makalenin MVC'de İstisna İşleme hakkında bilgi edinmek için bilgilendirici olduğunu umarız ; farklı uygulamalar hakkında daha fazla bilgi edinmek için lütfen bloglarımızı keşfedin.
Tam yığın geliştirme hakkında daha fazla bilgi edinmek istiyorsanız, upGrad & IIIT-B'nin çalışan profesyoneller için tasarlanmış ve 500+ saatlik zorlu eğitim, 9+ proje ve atamalar, IIIT-B Mezun statüsü, pratik uygulamalı bitirme projeleri ve en iyi firmalarla iş yardımı.
