疑難排解例外狀況:System.AccessViolationException

更新:2007 年 11 月

嘗試讀取或寫入受保護的記憶體時,就會擲回 AccessViolationException

相關秘訣

  • 請確定已配置您嘗試存取的記憶體。
    自動記憶體管理是 Common Language Runtime (CLR) 提供的一項服務。您可能會希望移動到 Managed 程式碼,以便利用這項服務。如需詳細資訊,請參閱自動記憶體管理

  • 請確定您嘗試存取的記憶體並未損毀。
    如果透過損壞的指標進行數次讀取或寫入作業,可能會損毀記憶體。

備註

嘗試讀取或寫入未經配置或沒有存取權的記憶體時,Unmanaged 或 Unsafe 程式碼會發生存取違規。並非所有透過錯誤指標讀取或寫入的動作都會導致存取違規,因此存取違規通常指出已透過錯誤指標執行多次讀取或寫入,且該記憶體可能已毀損。

在 Managed 程式碼中,所有參考不是有效的就是 null。嘗試在可驗證程式碼中參考 null 參考的任何作業,都會擲回 NullReferenceException

在 Unsafe Managed 程式碼中發生的存取違規,可能會以 NullReferenceExceptionAccessViolationException 說明 (依平台而定)。

反昇至 Managed 程式碼的 Unmanaged 程式碼存取違規,一律會包覆在 AccessViolationException 中。

請參閱

工作

HOW TO:使用例外狀況助理尋找例外狀況的詳細資訊

概念

Memory Management: Examples

自動記憶體管理