/
githubmirror
/
PowerShell
Обзор
Документация
Войти
/
githubmirror
/
PowerShell
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/System.Management.Automation/utils/MshArgumentException.cs
134 строки
4 KB
xtqqczze
Fix `SA1028`: Code should not contain trailing whitespace. Part 1. (#26203)
16 окт 2025, 10:58
Не верифицирован
16 окт 2025, 10:58
a10ff10
Код
Авторство
О чём код?
// Copyright (c) Microsoft Corporation. // Licensed under the MIT License. using System.Runtime.Serialization; namespace System.Management.Automation { /// <summary> /// This is a wrapper for exception class /// <see cref="System.ArgumentException"/> /// which provides additional information via /// <see cref="System.Management.Automation.IContainsErrorRecord"/>. /// </summary> /// <remarks> /// Instances of this exception class are usually generated by the /// PowerShell Engine. It is unusual for code outside the PowerShell Engine /// to create an instance of this class. /// </remarks> public class PSArgumentException : ArgumentException, IContainsErrorRecord { #region ctor /// <summary> /// Initializes a new instance of the PSArgumentException class. /// </summary> /// <returns>Constructed object.</returns> public PSArgumentException() : base() { } /// <summary> /// Initializes a new instance of the PSArgumentException class. /// </summary> /// <param name="message"></param> /// <returns>Constructed object.</returns> /// <remarks> /// Per MSDN, the parameter is message. /// I confirm this experimentally as well. /// </remarks> public PSArgumentException(string message) : base(message) { } /// <summary> /// Initializes a new instance of the PSArgumentException class. /// </summary> /// <param name="paramName"></param> /// <param name="message"></param> /// <returns>Constructed object.</returns> /// <remarks> /// Note the unusual order of the construction parameters. /// ArgumentException has this ctor form and we imitate it here. /// </remarks> public PSArgumentException(string message, string paramName) : base(message, paramName) { _message = message; } #region Serialization /// <summary> /// Initializes a new instance of the PSArgumentException class /// using data serialized via /// <see cref="System.Runtime.Serialization.ISerializable"/> /// </summary> /// <param name="info">Serialization information.</param> /// <param name="context">Streaming context.</param> /// <returns>Constructed object.</returns> [Obsolete("Legacy serialization support is deprecated since .NET 8", DiagnosticId = "SYSLIB0051")] protected PSArgumentException(SerializationInfo info, StreamingContext context) { throw new NotSupportedException(); } #endregion Serialization /// <summary> /// Initializes a new instance of the PSArgumentException class. /// </summary> /// <param name="message"></param> /// <param name="innerException"></param> /// <returns>Constructed object.</returns> public PSArgumentException(string message, Exception innerException) : base(message, innerException) { _message = message; } #endregion ctor /// <summary> /// Additional information about the error. /// </summary> /// <value></value> /// <remarks> /// Note that ErrorRecord.Exception is /// <see cref="System.Management.Automation.ParentContainsErrorRecordException"/>. /// </remarks> public ErrorRecord ErrorRecord { get { _errorRecord ??= new ErrorRecord( new ParentContainsErrorRecordException(this), _errorId, ErrorCategory.InvalidArgument, null); return _errorRecord; } } private ErrorRecord _errorRecord; private readonly string _errorId = "Argument"; /// <summary> /// See <see cref="System.Exception.Message"/> /// </summary> /// <remarks> /// Exception.Message is get-only, but you can effectively /// set it in a subclass by overriding this virtual property. /// </remarks> /// <value></value> public override string Message { get { return string.IsNullOrEmpty(_message) ? base.Message : _message; } } private readonly string _message; } }