İlginizi Çekebilir
  1. Ana Sayfa
  2. C Sharp

C# ArgumentNullException – Nedenleri ve Kullanımı

C# ArgumentNullException – Nedenleri ve Kullanımı
+ - 0

Merhabalar, C# ArgumentNullException – Nedenleri ve Kullanımı dersim ile Exceptions serisine devam ediyorum. Önceki dersim olan C# ArgumentException – Nedenleri ve Kullanımı dersin konusu bu dersin konusu ile bağlantılıdır. ArgumentNullException, ArgumentException sınıfından türetilmiş bir hata türüdür.

 

C# ArgumentNullException – Nedenleri ve Kullanımı

Devralma :  Object > Exception > SystemException > ArgumentException > ArgumentNullException

ArgumentNullException, bir yöntemde null olmaması gereken bir bağımsız değişkenin null olması sonucu ortaya çıkar. Buna örnek vermek gerekirse, bir File.Copy() işleminde null olmaması gereken path parametresinin null gönderilmesi bu hatayı ortaya çıkartır.

C# ArgumentNullException – Nedenleri

Örnek bir kod verelim. Bu hatayı aşağıdaki şekilde elde edebilirsiniz.

string s = null;
            string ss = null;
            System.IO.File.Copy(s, ss);

File.Copy() işleminde sourceFileName ( kaynak ) ve destFileName ( hedef ) parametreleri asla boş olmamalıdır. Düşünürsek, File.Copy() işlemi bir dosyayı bir yerden başka bir yere kopyalamamızı sağlar. Kopyalanacak bir dosya yolu vermediysek neyi kopyalayacak?

Buna başka örnekler verebiliriz.

  • Bir mail gönderme işleminde From mail adresi verilmemiş ise, From mailinin şifresi verilmemiş ise, To mail adresi verilmemiş ise,
  • Bir dosya silme işleminde dosya yolu verilmemiş ise,
  • Bir dosya okuma işleminde dosya yolu verilmemiş ise vs.

Yani yukarıda da belirttiğimiz gibi Null olmaması gereken bir değerin Null olması durumunda bu hatayı alırız.

 

C# ArgumentNullException – Kullanımı

Yine önceki dersimde örneğini gördüğünüz gibi bu exception’u da kendi isteğimiz ile başlatabiliriz. Aşağıdaki kodlarda örnek bir kullanım görebilirsiniz

        #region ArgumentNullException Çıkarma ve Yakalam Örneği
        private void btn_ArgumentNullException_Click(object sender, EventArgs e)
        {
            txt_cikti.Text = "";
            try
            {
                strBirlestir("mustafa", "");
            }
            catch (ArgumentNullException ex)
            {
                txt_cikti.Text += ex.GetType().Name + ":" + ex.Message;
            }

        }
        string strBirlestir(string ad, string soyad)
        {
            if (string.IsNullOrEmpty(ad) || string.IsNullOrWhiteSpace(ad))
            {
                throw new ArgumentNullException("ad", ad + " Ad değeri boş olamaz");
            }
            else if (string.IsNullOrEmpty(soyad) || string.IsNullOrWhiteSpace(soyad))
            {
                throw new ArgumentNullException("soyad", soyad + " Soyad değeri boş olamaz");
            }
            else
            {
                return ad + " " + soyad;
            }
        }
        #endregion

Bu örneğe göre Ad veya Soyad parametresi boş ise bir ArgumentNullException hatası verilmesini istedik. Çünkü bu değerlerin boş olmasını istemedik.

Daha fazla bilgiye Microsoft.Docs sitesinden ulaşabilirsiniz.


C# ArgumentNullException – Nedenleri ve Kullanımı dersimiz de bu kadardı arkadaşlar.

Tüm Exceptions derslerime bağlantıdan ulaşabilirsiniz.

C Sharp Eğitim Seti eğitimi sayfasına gitmek için tıklayınız.

Derslerime özel olarak hazırladığım Github Projeme buradan ulaşabilirsiniz… Bu dersim Github projemde yerini almıştır. Tüm Exception adı altında eklediğim dersleri Github projeme ekleyeceğim.

Sağlıcakla ve takipte kalın. ?

Bu yazıya tepkiniz ne oldu?

Yazar Hakkında

Lise Ağ Sistemleri ve Yönetimi bölümü, üniversite Bilgisayar Programcılığı bölümü Ön Lisans, Yönetim Bilişim Sistemleri Lisans öğrenimi aldım. Askerlik görevimi tamamladım. Uzmanlık alanım; C# ve SQL Programlama dilleri ile müşteri odaklı, kullanıcı dostu ERP ve CRM gibi sistemleri geliştirmektir. Ayrıca şuanda PHP ve MYSQL alanında projeler geliştirmekteyim. C++, Phyton, Xamarin, MVC gibi konuları öğrenmek ve kendimi geliştirme çabası içerisindeyim. Discord için: https://discord.gg/FBxZeHu9

Değerli yorumlarınızı bekliyorum. :)