이 문서는 기계 번역을 이용하여 번역되었습니다. 문서를 영문으로 보려면 영문 확인란을 선택하세요. 마우스 포인터를 텍스트 위로 이동시켜 팝업 창에서 영문 텍스트를 표시할 수도 있습니다.
번역
영문

ObjectDisposedException 클래스

 

삭제된 개체에서 연산이 수행될 때 throw되는 예외입니다.

네임스페이스:   System
어셈블리:  mscorlib.dll의 mscorlib

System.Object
  System.Exception
    System.SystemException
      System.InvalidOperationException
        System.ObjectDisposedException

[SerializableAttribute]
[ComVisibleAttribute(true)]
public class ObjectDisposedException : InvalidOperationException

이름설명
System_CAPS_protmethodObjectDisposedException(SerializationInfo, StreamingContext)

serialize된 데이터를 사용하여 ObjectDisposedException 클래스의 새 인스턴스를 초기화합니다.

System_CAPS_pubmethodObjectDisposedException(String)

새 인스턴스를 초기화는 ObjectDisposedException 삭제 된 개체의 이름을 포함 하는 문자열을 사용 합니다.

System_CAPS_pubmethodObjectDisposedException(String, Exception)

지정된 오류 메시지와 해당 예외의 원인인 내부 예외에 대한 참조를 사용하여 ObjectDisposedException 클래스의 새 인스턴스를 초기화합니다.

System_CAPS_pubmethodObjectDisposedException(String, String)

새 인스턴스를 초기화는 ObjectDisposedException 지정 된 개체 이름 및 메시지를 사용 하 여 클래스입니다.

이름설명
System_CAPS_pubpropertyData

예외에 대한 사용자 정의 추가 정보를 제공하는 키/값 쌍의 컬렉션을 가져옵니다.(Exception에서 상속됨.)

System_CAPS_pubpropertyHelpLink

이 예외와 연결된 도움말 파일에 대한 링크를 가져오거나 설정합니다.(Exception에서 상속됨.)

System_CAPS_pubpropertyHResult

특정 예외에 할당된 코드화된 숫자 값인 HRESULT를 가져오거나 설정합니다.(Exception에서 상속됨.)

System_CAPS_pubpropertyInnerException

현재 예외를 발생시킨 Exception 인스턴스를 가져옵니다.(Exception에서 상속됨.)

System_CAPS_pubpropertyMessage

오류를 설명하는 메시지를 가져옵니다.(Exception.Message을(를) 재정의함)

System_CAPS_pubpropertyObjectName

삭제된 개체의 이름을 가져옵니다.

System_CAPS_pubpropertySource

오류를 발생시키는 응용 프로그램 또는 개체의 이름을 가져오거나 설정합니다.(Exception에서 상속됨.)

System_CAPS_pubpropertyStackTrace

호출 스택의 직접 실행 프레임 문자열 표현을 가져옵니다.(Exception에서 상속됨.)

System_CAPS_pubpropertyTargetSite

현재 예외를 throw하는 메서드를 가져옵니다.(Exception에서 상속됨.)

이름설명
System_CAPS_pubmethodEquals(Object)

지정한 개체가 현재 개체와 같은지 여부를 확인합니다. (Object에서 상속됨.)

System_CAPS_protmethodFinalize()

개체가 가비지 수집자에서 회수되기 전에, 해당 개체에서 리소스를 해제하고 다른 정리 작업을 수행할 수 있게 합니다. (Object에서 상속됨.)

System_CAPS_pubmethodGetBaseException()

파생 클래스에서 재정의된 경우 하나 이상의 후속 예외의 근본 원인이 되는 Exception을 반환합니다.(Exception에서 상속됨.)

System_CAPS_pubmethodGetHashCode()

기본 해시 함수로 작동합니다.(Object에서 상속됨.)

System_CAPS_pubmethodGetObjectData(SerializationInfo, StreamingContext)

검색 된 SerializationInfo 매개 변수 이름 및 추가 예외 정보를 가진 개체입니다.(Exception.GetObjectData(SerializationInfo, StreamingContext)을(를) 재정의함)

System_CAPS_pubmethodGetType()

현재 인스턴스의 런타임 형식을 가져옵니다.(Exception에서 상속됨.)

System_CAPS_protmethodMemberwiseClone()

현재 Object의 단순 복사본을 만듭니다.(Object에서 상속됨.)

System_CAPS_pubmethodToString()

현재 예외에 대한 문자열 표현을 만들고 반환합니다.(Exception에서 상속됨.)

이름설명
System_CAPS_proteventSerializeObjectState

예외에 대한 serialize된 데이터를 포함하는 예외 상태 개체를 만들기 위해 예외를 serialize할 때 발생합니다.(Exception에서 상속됨.)

ObjectDisposedException 구현 하는 개체의 멤버에 액세스 하려고 할 때 throw 되는 IDisposable 인터페이스와 해당 개체가 삭제 되었습니다. 일반적으로이 예외는 다음 조건 중 하나에 의해 유발 됩니다.

  • 개체의 호출한 Dispose 메서드를 개체의 상태를 가져오거나 설정 합니다. 인스턴스 멤버에 액세스 하려고 합니다. 다음 예제는 ObjectDisposedException 호출한 후에 타이머 알림 횟수를 다시 설정 하려고 할 때 throw 되는 Timer.Dispose 메서드.

    using System;
    using System.Threading;
    
    public class Example
    {
       public static void Main()
       {
          Timer t = new Timer(TimerNotification, null, 
                             100, Timeout.Infinite);
          Thread.Sleep(2000);
          t.Dispose();
    
          t.Change(200, 1000);                   
          Thread.Sleep(3000);
       }
    
       private static void TimerNotification(Object obj)
       {
          Console.WriteLine("Timer event fired at {0:F}", DateTime.Now);
       }
    }
    // The example displays output like the following:
    //    Timer event fired at Monday, July 14, 2014 11:54:08 AM
    //    
    //    Unhandled Exception: System.ObjectDisposedException: Cannot access a disposed object.
    //       at System.Threading.TimerQueueTimer.Change(UInt32 dueTime, UInt32 period)
    //       at Example.Main()
    
  • 개체의 호출한 Close 메서드를 개체의 상태를 가져오거나 설정 합니다. 인스턴스 멤버에 액세스 하려고 합니다. 대개는 Close 메서드는 형식의 공용 구현을 제공는 IDisposable.Dispose 메서드.

  • 개체의 호출한 Dispose 메서드를 여러 번입니다. 일반적으로이 예외를 throw 하지 않습니다. 그러나 해당 형식이 구현 하는 방법을 따라 IDisposable.Dispose, 를 여러 번 호출을 허용 하지 않을 수 있습니다 Dispose합니다.

대부분의 경우에서이 예외는 개발자 오류를 발생합니다. 오류 메시지를 처리 하지 않고는 try/catch 블록 개체 재초기화 하 여 일반적으로 오류를 해결 해야 합니다.

다음 예제에서는 오류를는 ObjectDisposedException 예외를 throw 합니다.

using System;
using System.IO;

public class ObjectDisposedExceptionTest 
{
   public static void Main()
   {     
      MemoryStream ms = new MemoryStream(16);
      ms.Close();
      try 
      {
         ms.ReadByte();
      } 
      catch (ObjectDisposedException e) 
      {
         Console.WriteLine("Caught: {0}", e.Message);
      }
   }
}

이 코드의 결과는 다음과 같습니다.

Caught:
  Cannot access a closed Stream.

Universal Windows Platform
8 이후에 사용 가능
.NET Framework
1.1 이후에 사용 가능
Portable Class Library
portable .NET platforms에서 지원 portable .NET platforms
Silverlight
2.0 이후에 사용 가능
Windows Phone Silverlight
7.0 이후에 사용 가능
Windows Phone
8.1 이후에 사용 가능

이 형식의 모든 public static (Visual Basic의 경우 Shared) 멤버는 스레드로부터 안전합니다. 인터페이스 멤버는 스레드로부터 안전하지 않습니다.

맨 위로 이동
표시: