Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

ArgumentNullException ใน C#


ภาพรวม

ArgumentNullException โยนเมื่อ ส่งอ้างอิง null ให้เมธอดที่ไม่ยอมรับ null เป็นอาร์กิวเมนต์

ตัวอย่างที่ทำให้เกิด ArgumentNullException

using System;

class Demo
{
    static void Main()
    {
        string val = null;
        int res = int.Parse(val); // โยน ArgumentNullException
    }
}

ข้อความข้อผิดพลาด

Unhandled Exception: System.ArgumentNullException: Value cannot be null.

วิธีป้องกันและแก้ไข

  • ตรวจสอบ null ก่อนเรียก: if (val != null) int.Parse(val);
  • ใช้ int.TryParse(val, out int result) - จัดการ null ได้ (คืน false)
  • ใช้ string.IsNullOrEmpty(val) หรือ string.IsNullOrWhiteSpace(val) ตรวจสอบก่อน
  • ใส่ try-catch จับ ArgumentNullException โดยเฉพาะ
  • ใช้ ?? (null-coalescing) ให้ค่าเริ่มต้น: int.Parse(val ?? "0")

เมื่อไหร่ควรโยน ArgumentNullException เอง

public void MyMethod(string param)
{
    if (param == null)
        throw new ArgumentNullException(nameof(param), "Parameter cannot be null");
    // ...
}