提供的程式碼定義了 Photo、Album 類別,並在 Main 中建立相簿與照片物件。執行時發生 NullReferenceException,原因在於 family[\"Jeny\"] 查找字串 \"Jeny\",但實際存入的照片標題為 \"Jeny \"(含尾隨空格),導致索引器回傳 null,隨後嘗試存取 objPhoto2.Title 時拋出例外。
此處拋出的是 NullReferenceException(空參考例外),屬於執行時期例外,表示嘗試存取 null 物件的成員。
Photo objPhoto2 = family[\"Jeny\"];
if (objPhoto2 != null)
{
Console.WriteLine(objPhoto2.Title);
}
else
{
Console.WriteLine(\"Not Found\");
}
優點:邏輯清晰、效能最佳、避免例外處理開銷。
適用場景:可預期的業務邏輯分支(如查無資料)。
try
{
Console.WriteLine(objPhoto2.Title);
}
catch (NullReferenceException)
{
Console.WriteLine(\"Not Found\");
}
缺點:使用例外控制流程屬於「反模式」,掩蓋真正錯誤,效能較差,且捕獲範圍過廣易誤捕其他空參考錯誤。
null。Trim())。null 時,呼叫端務必檢查後再使用。Option<T> 或使用 TryGetValue 模式。