NullReferenceException: null (ya'ni tabiatan aniqlanmagan) ob'ektga kirishga urinayotganda tashlanadi. 4. Istisno va throw operatorini tashlash. Odatda, tizimning o'zi ma'lum holatlarda, masalan, raqamni nolga bo'lishda istisnolarni chiqaradi. Lekin C# ham throw operatori yordamida istisnolarni qo'lda tashlash imkonini beradi. Ya'ni, ushbu operatordan foydalanib, biz o'zimiz istisno yaratishimiz va uni ish vaqtida chaqirishimiz mumkin. Misol uchun, bizning dasturimizda foydalanuvchi nomi kiritilgan va agar nom 2 belgidan kam bo'lsa, istisno qilinishini xohlaymiz: try { Console.Write("Ismingizni kiriting: "); string? name = Console.ReadLine(); if (name== null || name.Length < 2) { throw new Exception("Ism uzunligi 2 ta belgidan kam "); } else { Console.WriteLine($"Ismingiz: {name}"); } } catch (Exception e) { Console.WriteLine($"Xato: {e.Message}"); } Xuddi shunday, biz dasturning istalgan joyiga istisnolar qo'yishimiz mumkin. Ammo throw operatoridan foydalanishning yana bir shakli ham mavjud, bunda operatordan keyin istisno ob'ekti ko'rsatilmaydi. Ushbu shaklda throw operatoridan faqat catch blokida foydalanish mumkin: try{ try{ Console.Write("Ismingizni kiriting: "); string? name = Console.ReadLine(); if (name == null || name.Length < 2) { throw new Exception("Ism uzunligi 2 ta belgidan kam "); } else { Console.WriteLine($"Ismingiz: {name}"); } } catch (Exception e) { Console.WriteLine($"Xato: {e.Message}"); throw; } } catch (Exception ex) { Console.WriteLine(ex.Message); } 5. Istisnolar sinflarini yaratish. Agar o'rnatilgan istisno turlari bizni qoniqtirmasa, biz o'z turlarimizni yaratishimiz mumkin. Barcha istisnolar uchun asosiy sinf Exception sinfidir, shuning uchun biz o'z turlarimizni yaratish uchun ushbu sinfni meros qilib olishimiz mumkin.
Do'stlaringiz bilan baham: |