ภาพรวม
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");
// ...
}