共用方式為


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

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

相關秘訣

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

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

ms164911.collapse_all(zh-tw,VS.110).gif備註

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

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

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

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

請參閱

工作

HOW TO:使用例外狀況助理

概念

記憶體管理: 範例

自動記憶體管理