| File: Linker\LinkerFatalErrorException.cs | Web Access |
| Project: src\runtime\src\tools\illink\src\linker\Mono.Linker.csproj (illink) |
// Copyright (c) .NET Foundation and contributors. All rights reserved. // Licensed under the MIT license. See LICENSE file in the project root for full license information. using System; namespace Mono.Linker { /// <summary> /// Represents a known error that occurred during link time which is not solvable by the user. /// This is used when we want to present the non-recoverable error with a specific error code. /// </summary> public class LinkerFatalErrorException : Exception { public MessageContainer MessageContainer { get; } /// <param name="message">Error message with a description of what went wrong</param> public LinkerFatalErrorException(MessageContainer message) : base(message.ToString()) { if (message.Category != MessageCategory.Error) throw new ArgumentException($"'{nameof(LinkerFatalErrorException)}' ought to be used for errors only"); if (message.Code == null || message.Code.Value == 0) throw new ArgumentException($"'{nameof(LinkerFatalErrorException)}' must have a code that indicates a failure"); MessageContainer = message; } /// <param name="message">Error message with a description of what went wrong</param> /// <param name="innerException"></param> public LinkerFatalErrorException(MessageContainer message, Exception innerException) : base(message.ToString(), innerException) { if (message.Category != MessageCategory.Error) throw new ArgumentException($"'{nameof(LinkerFatalErrorException)}' ought to be used for errors only"); if (message.Code == null || message.Code.Value == 0) throw new ArgumentException($"'{nameof(LinkerFatalErrorException)}' must have a code that indicates failure"); MessageContainer = message; } } }