ObjectDisposedException ObjectDisposedException ObjectDisposedException ObjectDisposedException Class

Definice

Výjimka, která je vyvolána při provádění operace na smazaném objektu.The exception that is thrown when an operation is performed on a disposed object.

public ref class ObjectDisposedException : InvalidOperationException
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public class ObjectDisposedException : InvalidOperationException
type ObjectDisposedException = class
    inherit InvalidOperationException
Public Class ObjectDisposedException
Inherits InvalidOperationException
Dědičnost
Atributy

Příklady

Následující příklad ukazuje chybu, která způsobí, že ObjectDisposedException vyvolání výjimky.The following example demonstrates an error that causes the ObjectDisposedException exception to be thrown.

using namespace System;
using namespace System::IO;
int main()
{
   MemoryStream^ ms = gcnew MemoryStream( 16 );
   ms->Close();
   try
   {
      ms->ReadByte();
   }
   catch ( ObjectDisposedException^ e ) 
   {
      Console::WriteLine( "Caught: {0}", e->Message );
   }

}

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);
      }
   }
}
Imports System
Imports System.IO

Public Class ObjectDisposedExceptionTest
   
   Public Shared Sub Main()
      Dim ms As New MemoryStream(16)
      ms.Close()
      Try
         ms.ReadByte()
      Catch e As ObjectDisposedException
         Console.WriteLine("Caught: {0}", e.Message)
      End Try
   End Sub 'Main
End Class 'ObjectDisposedExceptionTest

Tento kód vytvoří následující výstup:This code produces the following output:

Caught:  
  Cannot access a closed Stream.  

Poznámky

ObjectDisposedException Dojde při pokusu o přístup ke členu objektu, který implementuje IDisposable rozhraní a tento objekt byl uvolněn.An ObjectDisposedException is thrown when you try to access a member of an object that implements the IDisposable interface, and that object has been disposed. Obvykle tuto výjimku je způsobeno jedním z následujících podmínek:Typically, this exception is caused by one of the following conditions:

  • Jste volat objektu Dispose metoda a při pokusu o přístup k instanci člena, který získá nebo nastaví stav objektu.You've called an object's Dispose method, and you're trying to access an instance member that gets or sets the object's state. Následující příklad ukazuje ObjectDisposedException , která je vyvolána při pokusu o resetování četnost oznámení časovač po volání Timer.Dispose metody.The following example illustrates the ObjectDisposedException that is thrown when you try to reset the frequency of timer notifications after you call the Timer.Dispose method.

    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()
    
    Imports System.Threading
    
    Module Example
       Public Sub Main()
          Dim t As New Timer(AddressOf TimerNotification, Nothing, 
                             100, Timeout.Infinite)
          Thread.Sleep(2000)
          t.Dispose()
          
          t.Change(200, 1000)                   
          Thread.Sleep(3000)
       End Sub
    
       Private Sub TimerNotification(obj As Object)
          Console.WriteLine("Timer event fired at {0:F}", Date.Now)
       End Sub
    End Module
    ' 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()
    
  • Jste volat objektu Close metoda a při pokusu o přístup k instanci člena, který získá nebo nastaví stav objektu.You've called an object's Close method, and you're trying to access an instance member that gets or sets the object's state. Často Close metoda poskytuje implementaci veřejného typu IDisposable.Dispose metoda.Often, the Close method provides a type's public implementation of the IDisposable.Dispose method.

  • Jste volat objektu Dispose metodu více než jednou.You've called an object's Dispose method multiple times. Obvykle to nevyvolá výjimku.Typically, this doesn't throw an exception. Ale v závislosti na tom, jak typ implementuje IDisposable.Dispose, neumožňuje více volání Dispose.However, depending on how a type implements IDisposable.Dispose, it may not allow multiple calls to Dispose.

Ve většině případů výsledkem této výjimce došlo k chybě vývojáře.In most cases, this exception results from developer error. Namísto zpracování chyb v try / catch bloku, měli byste opravit chybu, obvykle podle reinstantiating objektu.Instead of handling the error in a try/catch block, you should correct the error, typically by reinstantiating the object.

Konstruktory

ObjectDisposedException(SerializationInfo, StreamingContext) ObjectDisposedException(SerializationInfo, StreamingContext) ObjectDisposedException(SerializationInfo, StreamingContext) ObjectDisposedException(SerializationInfo, StreamingContext)

Inicializuje novou instanci třídy ObjectDisposedException třídy se serializovanými daty.Initializes a new instance of the ObjectDisposedException class with serialized data.

ObjectDisposedException(String) ObjectDisposedException(String) ObjectDisposedException(String) ObjectDisposedException(String)

Inicializuje novou instanci třídy ObjectDisposedException třída s atributem řetězec obsahující název smazaném objektu.Initializes a new instance of the ObjectDisposedException class with a string containing the name of the disposed object.

ObjectDisposedException(String, Exception) ObjectDisposedException(String, Exception) ObjectDisposedException(String, Exception) ObjectDisposedException(String, Exception)

Inicializuje novou instanci třídy ObjectDisposedException třídy pomocí zadané chybové zprávy a odkazu na vnitřní výjimku, která je příčinou této výjimky.Initializes a new instance of the ObjectDisposedException class with a specified error message and a reference to the inner exception that is the cause of this exception.

ObjectDisposedException(String, String) ObjectDisposedException(String, String) ObjectDisposedException(String, String) ObjectDisposedException(String, String)

Inicializuje novou instanci třídy ObjectDisposedException třída s názvem zadaného objektu a zprávy.Initializes a new instance of the ObjectDisposedException class with the specified object name and message.

Vlastnosti

Data Data Data Data

Získá kolekci dvojic klíč/hodnota, která poskytují další uživatelem definované informace o výjimce.Gets a collection of key/value pairs that provide additional user-defined information about the exception.

(Inherited from Exception)
HelpLink HelpLink HelpLink HelpLink

Získá nebo nastaví odkaz na soubor nápovědy spojený s touto výjimkou.Gets or sets a link to the help file associated with this exception.

(Inherited from Exception)
HResult HResult HResult HResult

Získá nebo nastaví hodnotu HRESULT, programové číselnou hodnotu, která je přiřazena určité výjimky.Gets or sets HRESULT, a coded numerical value that is assigned to a specific exception.

(Inherited from Exception)
InnerException InnerException InnerException InnerException

Získá Exception instanci, která způsobila aktuální výjimku.Gets the Exception instance that caused the current exception.

(Inherited from Exception)
Message Message Message Message

Získá zprávu s popisem chyby.Gets the message that describes the error.

ObjectName ObjectName ObjectName ObjectName

Získá název smazaném objektu.Gets the name of the disposed object.

Source Source Source Source

Získá nebo nastaví název aplikace nebo objekt, který způsobuje chybu.Gets or sets the name of the application or the object that causes the error.

(Inherited from Exception)
StackTrace StackTrace StackTrace StackTrace

Získá řetězcovou reprezentaci okamžité rámce v zásobníku volání.Gets a string representation of the immediate frames on the call stack.

(Inherited from Exception)
TargetSite TargetSite TargetSite TargetSite

Získá metodu, která aktuální výjimku.Gets the method that throws the current exception.

(Inherited from Exception)

Metody

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Určuje, zda se zadaný objekt rovná aktuálnímu objektu.Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetBaseException() GetBaseException() GetBaseException() GetBaseException()

Při přepsání v odvozené třídě vrátí Exception , který je hlavní příčinou jednu nebo více následujících výjimek.When overridden in a derived class, returns the Exception that is the root cause of one or more subsequent exceptions.

(Inherited from Exception)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Slouží jako výchozí funkce hash.Serves as the default hash function.

(Inherited from Object)
GetObjectData(SerializationInfo, StreamingContext) GetObjectData(SerializationInfo, StreamingContext) GetObjectData(SerializationInfo, StreamingContext) GetObjectData(SerializationInfo, StreamingContext)

Načte SerializationInfo objekt s názvem parametru a další informace o výjimce.Retrieves the SerializationInfo object with the parameter name and additional exception information.

GetType() GetType() GetType() GetType()

Získá typ runtime aktuální instance.Gets the runtime type of the current instance.

(Inherited from Exception)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Vytvoří Mělkou kopii aktuální Object.Creates a shallow copy of the current Object.

(Inherited from Object)
ToString() ToString() ToString() ToString()

Vytvoří a vrátí řetězcovou reprezentaci aktuální výjimky.Creates and returns a string representation of the current exception.

(Inherited from Exception)

Události

SerializeObjectState SerializeObjectState SerializeObjectState SerializeObjectState

Nastane, pokud je serializována výjimku pro vytvoření objektu výjimky stavu, který obsahuje serializovaná data o výjimce.Occurs when an exception is serialized to create an exception state object that contains serialized data about the exception.

(Inherited from Exception)

Platí pro

Viz také