TypeLoadException TypeLoadException TypeLoadException TypeLoadException Constructors

정의

오버로드

TypeLoadException() TypeLoadException() TypeLoadException()

TypeLoadException 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the TypeLoadException class.

TypeLoadException(String) TypeLoadException(String) TypeLoadException(String) TypeLoadException(String)

지정된 오류 메시지를 사용하여 TypeLoadException 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the TypeLoadException class with a specified error message.

TypeLoadException(SerializationInfo, StreamingContext) TypeLoadException(SerializationInfo, StreamingContext) TypeLoadException(SerializationInfo, StreamingContext) TypeLoadException(SerializationInfo, StreamingContext)

serialize된 데이터를 사용하여 TypeLoadException 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the TypeLoadException class with serialized data.

TypeLoadException(String, Exception) TypeLoadException(String, Exception) TypeLoadException(String, Exception) TypeLoadException(String, Exception)

지정된 오류 메시지와 해당 예외의 원인인 내부 예외에 대한 참조를 사용하여 TypeLoadException 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the TypeLoadException class with a specified error message and a reference to the inner exception that is the cause of this exception.

TypeLoadException() TypeLoadException() TypeLoadException()

TypeLoadException 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the TypeLoadException class.

public:
 TypeLoadException();
public TypeLoadException ();
Public Sub New ()

설명

이 생성자는 Message "형식을 로드 하는 동안 오류가 발생 했습니다."와 같은 오류를 설명 하는 시스템 제공 메시지로 새 인스턴스의 속성This constructor initializes the Message property of the new instance to a system-supplied message that describes the error, such as "A failure has occurred while loading a type." 이 메시지는 현재 시스템의 문화권을 따릅니다.This message takes into account the current system culture.

다음 표에서는 TypeLoadException 인스턴스의 초기 속성 값을 보여 줍니다.The following table shows the initial property values for an instance of TypeLoadException.

속성Property Value
InnerException null 참조(Visual Basic의 경우 Nothing)A null reference (Nothing in Visual Basic).
Message 지역화된 오류 메시지 문자열입니다.The localized error message string.

TypeLoadException(String) TypeLoadException(String) TypeLoadException(String) TypeLoadException(String)

지정된 오류 메시지를 사용하여 TypeLoadException 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the TypeLoadException class with a specified error message.

public:
 TypeLoadException(System::String ^ message);
public TypeLoadException (string message);
new TypeLoadException : string -> TypeLoadException
Public Sub New (message As String)

매개 변수

message
String String String String

오류를 설명하는 메시지입니다.The message that describes the error.

예제

다음 코드 예제는 TypeLoadException(String) 생성자입니다.The following code example demonstrates the TypeLoadException(String) constructor. 생성 하는 메서드를 포함 하는 TypeLoadException 사용자 지정 메시지와 오류 메시지를 콘솔에 표시 됩니다.It contains a method that generates a TypeLoadException with a custom message, and displays the error message to the console.

using namespace System;

class TypeLoadExceptionDemoClass
{
   public:
      static bool GenerateException()
      {
         // Throw a TypeLoadException with a custom message.
         throw gcnew TypeLoadException("This is a custom TypeLoadException error message.");
      }
};

int main()
{
   try {
      // Call a method that throws an exception.  
      TypeLoadExceptionDemoClass::GenerateException();
   }
   catch ( TypeLoadException^ e ) {
      Console::WriteLine("TypeLoadException:\n   {0}", e->Message);
   }
   catch ( Exception^ e ) 
   {
      Console::WriteLine( "Exception: \n\tError Message = {0}", e->Message );
   }

}
// The example displays the following output:
//       TypeLoadException:
//          This is a custom TypeLoadException error message.
using System;

public class Example
{
   public static void Main() 
   {
      try {
         // Call a method that throws an exception.
         TypeLoadExceptionDemoClass.GenerateException();
      }  
      catch (TypeLoadException e) {
         Console.WriteLine("TypeLoadException:\n   {0}", e.Message);
      }
   }
}

class TypeLoadExceptionDemoClass
{ 
   public static bool GenerateException() 
   {
      // Throw a TypeLoadException with a custom defined message.
      throw new TypeLoadException("This is a custom TypeLoadException error message.");
   }
}
// The example displays the following output:
//       TypeLoadException:
//          This is a custom TypeLoadException error message.
Public Class Example
   Public Shared Sub Main()
      Try
         ' Call a method that throws an exception.
         TypeLoadExceptionDemoClass.GenerateException()
      Catch e As TypeLoadException
         Console.WriteLine("TypeLoadException:{0}   {1}", vbCrLf, e.Message)
      End Try
   End Sub 
End Class 

Class TypeLoadExceptionDemoClass
   Public Shared Function GenerateException() As Boolean
      ' Throw a TypeLoadException with a custom message.
      Throw New TypeLoadException("This is a custom TypeLoadException error message.")
   End Function 
End Class 
' The example displays the following output:
'       TypeLoadException:
'          This is a custom TypeLoadException error message.

설명

콘텐츠는 message 매개 변수는 사용자에 게 쉬워야 합니다.The content of the message parameter should be understandable to the user. 이 생성자의 호출자는 이 문자열이 현재 시스템 문화권에 맞게 지역화되었는지 확인하는 데 필요합니다.The caller of this constructor is required to ensure that this string has been localized for the current system culture.

다음 표에서는 TypeLoadException 인스턴스의 초기 속성 값을 보여 줍니다.The following table shows the initial property values for an instance of TypeLoadException.

속성Property Value
InnerException null 참조(Visual Basic의 경우 Nothing)A null reference (Nothing in Visual Basic).
Message 오류 메시지 문자열입니다.The error message string.

TypeLoadException(SerializationInfo, StreamingContext) TypeLoadException(SerializationInfo, StreamingContext) TypeLoadException(SerializationInfo, StreamingContext) TypeLoadException(SerializationInfo, StreamingContext)

serialize된 데이터를 사용하여 TypeLoadException 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the TypeLoadException class with serialized data.

protected:
 TypeLoadException(System::Runtime::Serialization::SerializationInfo ^ info, System::Runtime::Serialization::StreamingContext context);
protected TypeLoadException (System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context);
new TypeLoadException : System.Runtime.Serialization.SerializationInfo * System.Runtime.Serialization.StreamingContext -> TypeLoadException
Protected Sub New (info As SerializationInfo, context As StreamingContext)

매개 변수

info
SerializationInfo SerializationInfo SerializationInfo SerializationInfo

serialize된 개체 데이터를 보유하는 개체입니다.The object that holds the serialized object data.

context
StreamingContext StreamingContext StreamingContext StreamingContext

원본 또는 대상에 대한 컨텍스트 정보입니다.The contextual information about the source or destination.

예외

info 개체가 null인 경우The info object is null.

예제

다음 예제에서는 예외 데이터를 파일로 serialize 및 다음 예외를 다시 구성 된 예외를 생성 합니다.The following example generates an exception, and serializes the exception data to a file, and then reconstitutes the exception. 이 코드 예제를 실행 하려면 정규화 된 어셈블리 이름을 제공 해야 합니다.For this code example to run, you must provide the fully qualified assembly name. 참조 된 정규화 된 어셈블리 이름을 가져오는 방법에 대 한 내용은 어셈블리 이름합니다.For information about how to obtain the fully qualified assembly name, see Assembly Names.

#using <System.Runtime.Serialization.Formatters.Soap.dll>

using namespace System;
using namespace System::Reflection;
using namespace System::Runtime::Serialization;
using namespace System::Runtime::Serialization::Formatters::Soap;
using namespace System::IO;

// This class overrides the GetObjectData method and initializes
// its data with current time. 

[Serializable]
public ref class MyTypeLoadExceptionChild: public TypeLoadException
{
public:
   System::DateTime ErrorDateTime;
   MyTypeLoadExceptionChild()
   {
      ErrorDateTime = DateTime::Now;
   }

   MyTypeLoadExceptionChild( DateTime myDateTime )
   {
      ErrorDateTime = myDateTime;
   }


protected:
   MyTypeLoadExceptionChild( SerializationInfo^ sInfo, StreamingContext * sContext )
   {
      
      // Reconstitute the deserialized information into the instance.
      ErrorDateTime = sInfo->GetDateTime( "ErrorDate" );
   }


public:
   void GetObjectData( SerializationInfo^ sInfo, StreamingContext * sContext )
   {
      
      // Add a value to the Serialization information.
      sInfo->AddValue( "ErrorDate", ErrorDateTime );
   }

};

int main()
{
   
   // Load the mscorlib assembly and get a reference to it.
   // You must supply the fully qualified assembly name for mscorlib.dll here.
   Assembly^ myAssembly = Assembly::Load( "Assembly text name, Version, Culture, PublicKeyToken" );
   try
   {
      Console::WriteLine( "Attempting to load a type not present in the assembly 'mscorlib'" );
      
      // This loading of invalid type raises a TypeLoadException
      Type^ myType = myAssembly->GetType( "System::NonExistentType", true );
   }
   catch ( TypeLoadException^ ) 
   {
      
      // Serialize the exception to disk and reconstitute it back again.
      try
      {
         System::DateTime ErrorDatetime = DateTime::Now;
         Console::WriteLine( "A TypeLoadException has been raised." );
         
         // Create MyTypeLoadException instance with current time.
         MyTypeLoadExceptionChild^ myTypeLoadExceptionChild = gcnew MyTypeLoadExceptionChild( ErrorDatetime );
         IFormatter^ myFormatter = gcnew SoapFormatter;
         Stream^ myFileStream = gcnew FileStream( "typeload.xml",FileMode::Create,FileAccess::Write,FileShare::None );
         Console::WriteLine( "Serializing the TypeLoadException with DateTime as {0}", ErrorDatetime );
         
         // Serialize the MyTypeLoadException instance to a file.
         myFormatter->Serialize( myFileStream, myTypeLoadExceptionChild );
         myFileStream->Close();
         Console::WriteLine( "Deserializing the Exception." );
         myFileStream = gcnew FileStream( "typeload.xml",FileMode::Open,FileAccess::Read,FileShare::None );
         
         // Deserialize and reconstitute the instance from file.
         myTypeLoadExceptionChild = safe_cast<MyTypeLoadExceptionChild^>(myFormatter->Deserialize( myFileStream ));
         myFileStream->Close();
         Console::WriteLine( "Deserialized exception has ErrorDateTime = {0}", myTypeLoadExceptionChild->ErrorDateTime );
      }
      catch ( Exception^ e ) 
      {
         Console::WriteLine( "Exception : {0}", e->Message );
      }

   }
   catch ( Exception^ e ) 
   {
      Console::WriteLine( "Exception : {0}", e->Message );
   }

}


using System;
using System.Reflection;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Soap; 
using System.Security.Permissions;
using System.IO;

class GetObjectDataDemo
{
   public static void Main()
   {
      // Get a reference to the assembly mscorlib.dll, which is always
      // loaded. (System.String is defined in mscorlib.)
      Assembly mscorlib = typeof(string).Assembly;

      try
      {
         Console.WriteLine ("Attempting to load a type not present in the assembly 'mscorlib'");
         // This loading of invalid type raises a TypeLoadException
         Type myType = mscorlib.GetType("System.NonExistentType", true);
      }         
      catch (TypeLoadException)
      {
         // Serialize the exception to disk and reconstitute it.
         System.DateTime ErrorDatetime = DateTime.Now;
         Console.WriteLine("A TypeLoadException has been raised.");

         // Create MyTypeLoadException instance with current time.
         MyTypeLoadException myException = new MyTypeLoadException(ErrorDatetime);
         IFormatter myFormatter = new SoapFormatter();
         Stream myFileStream = new FileStream("typeload.xml", FileMode.Create, FileAccess.Write, FileShare.None);
         Console.WriteLine("Serializing the TypeLoadException with DateTime as " + ErrorDatetime);

         // Serialize the MyTypeLoadException instance to a file.
         myFormatter.Serialize(myFileStream, myException);
         myFileStream.Close();

         Console.WriteLine("Deserializing the Exception.");
         myFileStream = new FileStream("typeload.xml", FileMode.Open, FileAccess.Read, FileShare.None);

         // Deserialize and reconstitute the instance from file.
         myException = (MyTypeLoadException) myFormatter.Deserialize(myFileStream);
         myFileStream.Close();
         Console.WriteLine("Deserialized exception has ErrorDateTime = " + myException.ErrorDateTime);
      }
   }
}

// This class overrides the GetObjectData method and initializes
// its data with current time. 

[Serializable]
public class MyTypeLoadException : TypeLoadException 
{
   private System.DateTime _errorDateTime = DateTime.Now;
   public DateTime ErrorDateTime { get { return _errorDateTime; }}

   public MyTypeLoadException(DateTime myDateTime) 
   {
      _errorDateTime = myDateTime;
   }

   protected MyTypeLoadException(SerializationInfo sInfo, StreamingContext sContext) 
       : base(sInfo, sContext)
   {
      // Reconstitute the deserialized information into the instance.
      _errorDateTime = sInfo.GetDateTime("ErrorDate");
   }

   // GetObjectData overrides must always have a demand for SerializationFormatter.
   [SecurityPermissionAttribute(SecurityAction.Demand, SerializationFormatter=true)]
   public override void GetObjectData(SerializationInfo sInfo, StreamingContext sContext) 
   {
      base.GetObjectData(sInfo, sContext);
      // Add a value to the Serialization information.
      sInfo.AddValue("ErrorDate", ErrorDateTime);
   }
}
Imports System.Reflection
Imports System.Runtime.Serialization
Imports System.Runtime.Serialization.Formatters.Soap
Imports System.Security.Permissions
Imports System.IO

Class GetObjectDataDemo

   Public Shared Sub Main()
      ' Get a reference to the assembly mscorlib.dll, which is always
      ' loaded. (System.String is defined in mscorlib.)
      Dim tString As Type = GetType(String)
      Dim mscorlib As [Assembly] = tString.Assembly

      Try
         Console.WriteLine("Attempting to load a type not present in the assembly 'mscorlib'")
         ' This loading of invalid type raises a TypeLoadException
         Dim myType As Type = mscorlib.GetType("System.NonExistentType", True)
      Catch
         ' Serialize the exception to disk and reconstitute it.
         Dim ErrorDatetime as System.DateTime = DateTime.Now
         Console.WriteLine("A TypeLoadException has been raised.")

         ' Create MyTypeLoadException instance with current time.
         Dim myException As new MyTypeLoadException(ErrorDatetime)
         Dim myFormatter as IFormatter  = new SoapFormatter()
         Dim myFileStream as Stream 
         myFileStream = New FileStream("typeload.xml", FileMode.Create, FileAccess.Write, FileShare.None)
         Console.WriteLine("Serializing the TypeLoadException with DateTime as " _
             & ErrorDatetime.ToString())

         ' Serialize the MyTypeLoadException instance to a file.
         myFormatter.Serialize(myFileStream, myException)
         myFileStream.Close()

         Console.WriteLine("Deserializing the Exception.")
         myFileStream = New FileStream("typeload.xml", FileMode.Open, FileAccess.Read, FileShare.None)

         ' Deserialize and reconstitute the instance from file.
         myException = CType(myFormatter.Deserialize(myFileStream), MyTypeLoadException)
         myFileStream.Close()
         Console.WriteLine("Deserialized exception has ErrorDateTime = " + myException.ErrorDateTime.ToString())
      End Try
   End Sub 'Main
End Class

' This class overrides the GetObjectData method and initializes
' its data with current time. 
<Serializable()> _
Public Class MyTypeLoadException
   Inherits TypeLoadException

   Private _errorDateTime As System.DateTime = DateTime.Now
   Public ReadOnly Property ErrorDateTime As DateTime
      Get
         Return _errorDateTime
      End Get
   End Property

   Public Sub New(myDateTime As DateTime)
      _errorDateTime = myDateTime
   End Sub 'New

   Protected Sub New(sInfo As SerializationInfo, sContext As StreamingContext)
      MyBase.New(sInfo, sContext)
      ' Reconstitute the deserialized information into the instance.
      _errorDateTime = sInfo.GetDateTime("ErrorDate")
   End Sub 'New

   ' GetObjectData overrides must always have a demand for SerializationFormatter.
   <SecurityPermissionAttribute(SecurityAction.Demand, SerializationFormatter:=true)> _
   Public Overrides Sub GetObjectData(sInfo As SerializationInfo, sContext As StreamingContext)
      MyBase.GetObjectData(sInfo, sContext)
      ' Add a value to the Serialization information.
      sInfo.AddValue("ErrorDate", ErrorDateTime)
   End Sub 'GetObjectData

End Class 'MyTypeLoadExceptionChild

설명

deserialization을 수행하는 동안 이 생성자를 호출하여 스트림을 통해 전송될 예외 개체를 다시 구성합니다.This constructor is called during deserialization to reconstitute the exception object transmitted over a stream. 자세한 내용은 XML 및 SOAP Serialization합니다.For more information, see XML and SOAP Serialization.

추가 정보

TypeLoadException(String, Exception) TypeLoadException(String, Exception) TypeLoadException(String, Exception) TypeLoadException(String, Exception)

지정된 오류 메시지와 해당 예외의 원인인 내부 예외에 대한 참조를 사용하여 TypeLoadException 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the TypeLoadException class with a specified error message and a reference to the inner exception that is the cause of this exception.

public:
 TypeLoadException(System::String ^ message, Exception ^ inner);
public TypeLoadException (string message, Exception inner);
new TypeLoadException : string * Exception -> TypeLoadException
Public Sub New (message As String, inner As Exception)

매개 변수

message
String String String String

예외에 대한 이유를 설명하는 오류 메시지입니다.The error message that explains the reason for the exception.

inner
Exception Exception Exception Exception

현재 예외의 원인인 예외입니다.The exception that is the cause of the current exception. inner 매개 변수가 null이 아니면 현재 예외는 내부 예외를 처리하는 catch 블록에서 발생합니다.If the inner parameter is not null, the current exception is raised in a catch block that handles the inner exception.

예제

다음 코드 예제는 TypeLoadException(String, Exception) 생성자입니다.The following code example demonstrates the TypeLoadException(String, Exception) constructor. 생성 하는 메서드를 포함 하는 TypeLoadException, 해당 예외를 catch 및 throw를 새 TypeLoadException 사용자 지정 메시지를 포함 하 여 원래 TypeLoadException 내부 예외로 합니다.It contains a method that generates a TypeLoadException, catches that exception, and throws a new TypeLoadException with a custom message, including the original TypeLoadException as the inner exception.

using namespace System;
using namespace System::Runtime::InteropServices;
ref class TypeLoadExceptionDemoClass
{
public:

   // A call to this method will raise a TypeLoadException.

   [DllImport("NonExistentDLL.DLL",EntryPoint="MethodNotExists")]
   static void NonExistentMethod();
   static void GenerateException()
   {
      try
      {
         NonExistentMethod();
      }
      catch ( TypeLoadException^ e ) 
      {
         
         // Rethrow exception with the exception as inner exception
         throw gcnew TypeLoadException( "This exception was raised due to a call to an invalid method.",e );
      }

   }

};

int main()
{
   Console::WriteLine( "Calling a method in a non-existent DLL which triggers a TypeLoadException." );
   try
   {
      TypeLoadExceptionDemoClass::GenerateException();
   }
   catch ( TypeLoadException^ e ) 
   {
      Console::WriteLine( "TypeLoadException: \n\tError Message = {0}", e->Message );
      Console::WriteLine( "TypeLoadException: \n\tInnerException Message = {0}", e->InnerException->Message );
   }
   catch ( Exception^ e ) 
   {
      Console::WriteLine( "Exception: \n\tError Message = {0}", e->Message );
   }

}


using System;
using System.Runtime.InteropServices;

public class TypeLoadException_Constructor3
{
   public static void Main() 
   {
      Console.WriteLine("Calling a method in a non-existent DLL which triggers a TypeLoadException.");
      try 
      {
         TypeLoadExceptionDemoClass.GenerateException();
      }  
      catch (TypeLoadException e)
      {
         Console.WriteLine ("TypeLoadException: \n\tError Message = " + e.Message);
         Console.WriteLine ("TypeLoadException: \n\tInnerException Message = " + e.InnerException.Message );
      }  
      catch (Exception e)
      {
         Console.WriteLine ("Exception: \n\tError Message = " + e.Message);
      }
   }
}

class TypeLoadExceptionDemoClass
{ 
   // A call to this method will raise a TypeLoadException.
   [DllImport("NonExistentDLL.DLL", EntryPoint="MethodNotExists")]
   public static extern void NonExistentMethod();

   public static void GenerateException() 
   {
      try 
      {
         NonExistentMethod();
      }
      catch (TypeLoadException e) 
      {
         // Rethrow exception with the exception as inner exception
         throw new TypeLoadException("This exception was raised due to a call to an invalid method.", e);
      }
   }
}
Imports System.Runtime.InteropServices

Public Class TypeLoadException_Constructor3
   Public Shared Sub Main()
      Console.WriteLine("Calling a method in a non-existent DLL which triggers a TypeLoadException.")
      Try
         TypeLoadExceptionDemoClass.GenerateException()
      Catch e As TypeLoadException
         Console.WriteLine(("TypeLoadException: " + ControlChars.Cr + ControlChars.Tab + "Error Message = " + e.Message))
         Console.WriteLine(("TypeLoadException: " + ControlChars.Cr + ControlChars.Tab + "InnerException Message = " + e.InnerException.Message))
      Catch e As Exception
         Console.WriteLine(("Exception: " + ControlChars.Cr + ControlChars.Tab + "Error Message = " + e.Message))
      End Try
   End Sub 'Main
End Class 'TypeLoadException_Constructor3

Class TypeLoadExceptionDemoClass
   ' A call to this method will raise a TypeLoadException.
   Public Declare Sub NonExistentMethod Lib "NonExistentDLL.DLL" Alias "MethodNotExists" ()

   Public Shared Sub GenerateException()
      Try
         NonExistentMethod()
      Catch e As TypeLoadException
         ' Rethrow exception with the exception as inner exception
         Throw New TypeLoadException("This exception was raised due to a call to an invalid method.", e)
      End Try
   End Sub 'GenerateException
End Class 'TypeLoadExceptionDemoClass

설명

이전 예외의 직접적인 결과로 throw되는 예외는 InnerException 속성에 이전 예외에 대한 참조를 포함할 수 있습니다.An exception that is thrown as a direct result of a previous exception can include a reference to the previous exception in the InnerException property. InnerException 속성은 생성자에 전달되는 값과 동일한 값을 반환하며, null 속성이 생성자에 내부 예외 값을 제공하지 않는 경우에는 InnerException을 반환합니다.The InnerException property returns the same value that is passed into the constructor, or null if the InnerException property does not supply the inner exception value to the constructor.

다음 표에서는 TypeLoadException 인스턴스의 초기 속성 값을 보여 줍니다.The following table shows the initial property values for an instance of TypeLoadException.

속성Property Value
InnerException 내부 예외 참조입니다.The inner exception reference.
Message 오류 메시지 문자열입니다.The error message string.
추가 정보

적용 대상