diff options
author | Jiyoung Yun <jy910.yun@samsung.com> | 2017-04-13 14:17:19 +0900 |
---|---|---|
committer | Jiyoung Yun <jy910.yun@samsung.com> | 2017-04-13 14:17:19 +0900 |
commit | a56e30c8d33048216567753d9d3fefc2152af8ac (patch) | |
tree | 7e5d979695fc4a431740982eb1cfecc2898b23a5 /src/mscorlib/shared/System/TypeInitializationException.cs | |
parent | 4b11dc566a5bbfa1378d6266525c281b028abcc8 (diff) | |
download | coreclr-a56e30c8d33048216567753d9d3fefc2152af8ac.tar.gz coreclr-a56e30c8d33048216567753d9d3fefc2152af8ac.tar.bz2 coreclr-a56e30c8d33048216567753d9d3fefc2152af8ac.zip |
Imported Upstream version 2.0.0.11353upstream/2.0.0.11353
Diffstat (limited to 'src/mscorlib/shared/System/TypeInitializationException.cs')
-rw-r--r-- | src/mscorlib/shared/System/TypeInitializationException.cs | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/src/mscorlib/shared/System/TypeInitializationException.cs b/src/mscorlib/shared/System/TypeInitializationException.cs new file mode 100644 index 0000000000..9191028346 --- /dev/null +++ b/src/mscorlib/shared/System/TypeInitializationException.cs @@ -0,0 +1,79 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +/*============================================================================= +** +** +** +** Purpose: The exception class to wrap exceptions thrown by +** a type's class initializer (.cctor). This is sufficiently +** distinct from a TypeLoadException, which means we couldn't +** find the type. +** +** +=============================================================================*/ + +using System.Globalization; +using System.Runtime.Serialization; + +namespace System +{ + [Serializable] + public sealed class TypeInitializationException : SystemException + { + private String _typeName; + + // This exception is not creatable without specifying the + // inner exception. + private TypeInitializationException() + : base(SR.TypeInitialization_Default) + { + HResult = __HResults.COR_E_TYPEINITIALIZATION; + } + + + public TypeInitializationException(String fullTypeName, Exception innerException) + : this(fullTypeName, SR.Format(SR.TypeInitialization_Type, fullTypeName), innerException) + { + } + + // This is called from within the runtime. I believe this is necessary + // for Interop only, though it's not particularly useful. + internal TypeInitializationException(String message) : base(message) + { + HResult = __HResults.COR_E_TYPEINITIALIZATION; + } + + internal TypeInitializationException(String fullTypeName, String message, Exception innerException) + : base(message, innerException) + { + _typeName = fullTypeName; + HResult = __HResults.COR_E_TYPEINITIALIZATION; + } + + internal TypeInitializationException(SerializationInfo info, StreamingContext context) + : base(info, context) + { + _typeName = info.GetString("TypeName"); + } + + public override void GetObjectData(SerializationInfo info, StreamingContext context) + { + base.GetObjectData(info, context); + info.AddValue("TypeName", TypeName, typeof(String)); + } + + public String TypeName + { + get + { + if (_typeName == null) + { + return String.Empty; + } + return _typeName; + } + } + } +} |