diff --git a/ICSharpCode.Decompiler/Metadata/EnumUnderlyingTypeResolveException.cs b/ICSharpCode.Decompiler/Metadata/EnumUnderlyingTypeResolveException.cs index ab7630fb1..a2c1414b6 100644 --- a/ICSharpCode.Decompiler/Metadata/EnumUnderlyingTypeResolveException.cs +++ b/ICSharpCode.Decompiler/Metadata/EnumUnderlyingTypeResolveException.cs @@ -23,22 +23,25 @@ using System.Text; namespace ICSharpCode.Decompiler.Metadata { + [Serializable] public class EnumUnderlyingTypeResolveException : Exception { - public EnumUnderlyingTypeResolveException() - { - } - - public EnumUnderlyingTypeResolveException(string message) : base(message) - { - } - - public EnumUnderlyingTypeResolveException(string message, Exception innerException) : base(message, innerException) - { - } + public EnumUnderlyingTypeResolveException() { } + public EnumUnderlyingTypeResolveException(string message) : base(message) { } + public EnumUnderlyingTypeResolveException(string message, Exception inner) : base(message, inner) { } + protected EnumUnderlyingTypeResolveException( + SerializationInfo info, + StreamingContext context) : base(info, context) { } + } - protected EnumUnderlyingTypeResolveException(SerializationInfo info, StreamingContext context) : base(info, context) - { - } + [Serializable] + public class PEFileNotSupportedException : Exception + { + public PEFileNotSupportedException() { } + public PEFileNotSupportedException(string message) : base(message) { } + public PEFileNotSupportedException(string message, Exception inner) : base(message, inner) { } + protected PEFileNotSupportedException( + SerializationInfo info, + StreamingContext context) : base(info, context) { } } } diff --git a/ICSharpCode.Decompiler/Metadata/PEFile.cs b/ICSharpCode.Decompiler/Metadata/PEFile.cs index 0b52d9347..1a39d9830 100644 --- a/ICSharpCode.Decompiler/Metadata/PEFile.cs +++ b/ICSharpCode.Decompiler/Metadata/PEFile.cs @@ -62,7 +62,7 @@ namespace ICSharpCode.Decompiler.Metadata this.FileName = fileName ?? throw new ArgumentNullException(nameof(fileName)); this.Reader = reader ?? throw new ArgumentNullException(nameof(reader)); if (!reader.HasMetadata) - throw new ArgumentException("PE file does not contain any metadata!"); + throw new PEFileNotSupportedException("PE file does not contain any managed metadata."); this.Metadata = reader.GetMetadataReader(); } diff --git a/ILSpy/TreeNodes/AssemblyTreeNode.cs b/ILSpy/TreeNodes/AssemblyTreeNode.cs index c7f0937a1..ab70fc093 100644 --- a/ILSpy/TreeNodes/AssemblyTreeNode.cs +++ b/ILSpy/TreeNodes/AssemblyTreeNode.cs @@ -264,6 +264,9 @@ namespace ICSharpCode.ILSpy.TreeNodes case DirectoryNotFoundException dirNotFound: HandleException(dirNotFound, "The directory was not found."); return; + case PEFileNotSupportedException notSupported: + HandleException(notSupported, notSupported.Message); + return; default: throw; }