AccessViolationException クラス
アセンブリ: mscorlib (mscorlib.dll 内)
構文
<SerializableAttribute> _ <ComVisibleAttribute(True)> _ Public Class AccessViolationException Inherits SystemException
[SerializableAttribute] [ComVisibleAttribute(true)] public class AccessViolationException : SystemException
[SerializableAttribute] [ComVisibleAttribute(true)] public ref class AccessViolationException : public SystemException
割り当てられていないメモリ、またはコードがアクセス権を持たないメモリに対して、コードが読み取りまたは書き込みを試行すると、アンマネージ コード (アンセーフ コード) でアクセス違反が発生します。通常、アクセス違反が発生するのは、ポインタの値が正しくないためです。不正なポインタによるすべての読み取りまたは書き込みがアクセス違反の原因になるわけではありません。アクセス違反は通常、不正なポインタによる複数の読み取りまたは書き込みが発生したことや、メモリが破損している可能性があることを示します。したがって、多くの場合、アクセス違反は深刻なプログラミング エラーを示しています。.NET Framework Version 2.0 では、AccessViolationException がこうした深刻なエラーを明確に示します。
全体が検証可能なマネージ コードで構成されているプログラムでは、すべての参照は有効または null のいずれかであるため、アクセス違反は起こり得ません。AccessViolationException は、検証可能なマネージ コードが、アンマネージ コード (アンセーフ マネージ コード) と対話する場合にのみ発生します。
バージョン情報この例外は、.NET Framework Version 2.0 で新しく導入されました。旧バージョンの .NET Framework では、アンマネージ コード (アンセーフ マネージ コード) 内のアクセス違反は、マネージ コード内の NullReferenceException によって表されます。NullReferenceException は、null 参照が検証可能なマネージ コード内で逆参照されている場合、null 参照の発生がデータの破損に関係しない場合、および Version 1.0 または 1.1 でこの 2 つの状況を区別する方法がない場合にもスローされます。
管理者は、選択したアプリケーションを .NET Framework Version 1.1 の動作に戻すことができます。アプリケーションの構成ファイルの <runtime> 要素 セクションに、次の行を配置します。
<legacyNullReferenceExceptionPolicy enabled = "1"/>
System.Exception
System.SystemException
System.AccessViolationException
プラットフォーム
Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
参照
- AccessViolationException クラスのページへのリンク