| File: Json\ThrowHelper.cs | Web Access |
| Project: src\sdk\src\RazorSdk\Tool\Microsoft.NET.Sdk.Razor.Tool.csproj (rzc) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using System.Diagnostics.CodeAnalysis; using System.Runtime.CompilerServices; namespace Microsoft.NET.Sdk.Razor.Tool.Json; internal static class ThrowHelper { /// <summary> /// Throws an <see cref="ArgumentException"/> with a parameter name and a message. /// </summary> /// <param name="paramName"> /// The parameter name to include in the exception. /// </param> /// <param name="message"> /// The message to include in the exception. /// </param> /// <remarks> /// This helps the JIT inline methods that need to throw an exceptions. /// </remarks> [DoesNotReturn] [MethodImpl(MethodImplOptions.NoInlining)] public static void ThrowArgumentException(string? paramName, string message) => throw new ArgumentException(message, paramName); /// <summary> /// Throws an <see cref="ArgumentException"/> with a parameter name and a message. /// </summary> /// <param name="paramName"> /// The parameter name to include in the exception. /// </param> /// <param name="message"> /// The message to include in the exception. /// </param> /// <returns> /// This method does not return because it always throws an exception, but it is defined to return a /// <typeparamref name="T"/> value. This is useful for control flow scenarios where it is necessary to /// throw an exception and return from a method. /// </returns> /// <remarks> /// This helps the JIT inline methods that need to throw an exceptions. /// </remarks> [DoesNotReturn] [MethodImpl(MethodImplOptions.NoInlining)] public static T ThrowArgumentException<T>(string? paramName, string message) => throw new ArgumentException(message, paramName); /// <summary> /// Throws an <see cref="ArgumentNullException"/> with a parameter name. /// </summary> /// <param name="paramName"> /// The parameter name to include in the exception. /// </param> /// <remarks> /// This helps the JIT inline methods that need to throw an exceptions. /// </remarks> [DoesNotReturn] [MethodImpl(MethodImplOptions.NoInlining)] public static void ThrowArgumentNullException(string? paramName) => throw new ArgumentNullException(paramName); /// <summary> /// Throws an <see cref="ArgumentNullException"/> with a parameter name. /// </summary> /// <param name="paramName"> /// The parameter name to include in the exception. /// </param> /// <returns> /// This method does not return because it always throws an exception, but it is defined to return a /// <typeparamref name="T"/> value. This is useful for control flow scenarios where it is necessary to /// throw an exception and return from a method. /// </returns> /// <remarks> /// This helps the JIT inline methods that need to throw an exceptions. /// </remarks> [DoesNotReturn] [MethodImpl(MethodImplOptions.NoInlining)] public static T ThrowArgumentNullException<T>(string? paramName) => throw new ArgumentNullException(paramName); /// <summary> /// Throws an <see cref="ArgumentOutOfRangeException"/> with a parameter name, message, and /// the actual invalid value. /// </summary> /// <param name="paramName"> /// The parameter name to include in the exception. /// </param> /// <param name="actualValue"> /// The actual invalid value to include in the exception. /// </param> /// <param name="message"> /// The message to include in the exception. /// </param> /// <remarks> /// This helps the JIT inline methods that need to throw an exceptions. /// </remarks> [DoesNotReturn] [MethodImpl(MethodImplOptions.NoInlining)] public static void ThrowArgumentOutOfRangeException(string? paramName, object? actualValue, string message) => throw new ArgumentOutOfRangeException(paramName, actualValue, message); /// <summary> /// Throws an <see cref="ArgumentOutOfRangeException"/> with a parameter name and message. /// </summary> /// <param name="paramName"> /// The parameter name to include in the exception. /// </param> /// <param name="message"> /// The message to include in the exception. /// </param> /// <remarks> /// This helps the JIT inline methods that need to throw an exceptions. /// </remarks> [DoesNotReturn] [MethodImpl(MethodImplOptions.NoInlining)] public static void ThrowArgumentOutOfRangeException(string? paramName, string message) => throw new ArgumentOutOfRangeException(paramName, message); /// <summary> /// Throws an <see cref="ArgumentOutOfRangeException"/> with a parameter name. /// </summary> /// <param name="paramName"> /// The parameter name to include in the exception. /// </param> /// <remarks> /// This helps the JIT inline methods that need to throw an exceptions. /// </remarks> [DoesNotReturn] [MethodImpl(MethodImplOptions.NoInlining)] public static void ThrowArgumentOutOfRangeException(string? paramName) => throw new ArgumentOutOfRangeException(paramName); /// <summary> /// Throws an <see cref="ArgumentOutOfRangeException"/> with a parameter name, message, and /// the actual invalid value. /// </summary> /// <param name="paramName"> /// The parameter name to include in the exception. /// </param> /// <param name="actualValue"> /// The actual invalid value to include in the exception. /// </param> /// <param name="message"> /// The message to include in the exception. /// </param> /// <returns> /// This method does not return because it always throws an exception, but it is defined to return a /// <typeparamref name="T"/> value. This is useful for control flow scenarios where it is necessary to /// throw an exception and return from a method. /// </returns> /// <remarks> /// This helps the JIT inline methods that need to throw an exceptions. /// </remarks> [DoesNotReturn] [MethodImpl(MethodImplOptions.NoInlining)] public static T ThrowArgumentOutOfRangeException<T>(string? paramName, object? actualValue, string message) => throw new ArgumentOutOfRangeException(paramName, actualValue, message); /// <summary> /// Throws an <see cref="ArgumentOutOfRangeException"/> with a parameter name and message. /// </summary> /// <param name="paramName"> /// The parameter name to include in the exception. /// </param> /// <param name="message"> /// The message to include in the exception. /// </param> /// <returns> /// This method does not return because it always throws an exception, but it is defined to return a /// <typeparamref name="T"/> value. This is useful for control flow scenarios where it is necessary to /// throw an exception and return from a method. /// </returns> /// <remarks> /// This helps the JIT inline methods that need to throw an exceptions. /// </remarks> [DoesNotReturn] [MethodImpl(MethodImplOptions.NoInlining)] public static T ThrowArgumentOutOfRangeException<T>(string? paramName, string message) => throw new ArgumentOutOfRangeException(paramName, message); /// <summary> /// Throws an <see cref="ArgumentOutOfRangeException"/> with a parameter name. /// </summary> /// <param name="paramName"> /// The parameter name to include in the exception. /// </param> /// <returns> /// This method does not return because it always throws an exception, but it is defined to return a /// <typeparamref name="T"/> value. This is useful for control flow scenarios where it is necessary to /// throw an exception and return from a method. /// </returns> /// <remarks> /// This helps the JIT inline methods that need to throw an exceptions. /// </remarks> [DoesNotReturn] [MethodImpl(MethodImplOptions.NoInlining)] public static T ThrowArgumentOutOfRangeException<T>(string? paramName) => throw new ArgumentOutOfRangeException(paramName); /// <summary> /// Throws an <see cref="InvalidOperationException"/> with a message. /// </summary> /// <param name="message"> /// The message to include in the exception. /// </param> /// <remarks> /// This helps the JIT inline methods that need to throw an exceptions. /// </remarks> [DoesNotReturn] [MethodImpl(MethodImplOptions.NoInlining)] public static void ThrowInvalidOperationException(string message) => throw new InvalidOperationException(message); /// <summary> /// Throws an <see cref="InvalidOperationException"/> with a message. /// </summary> /// <param name="message"> /// The message to include in the exception. /// </param> /// <returns> /// This method does not return because it always throws an exception, but it is defined to return a /// <typeparamref name="T"/> value. This is useful for control flow scenarios where it is necessary to /// throw an exception and return from a method. /// </returns> /// <remarks> /// This helps the JIT inline methods that need to throw an exceptions. /// </remarks> [DoesNotReturn] [MethodImpl(MethodImplOptions.NoInlining)] public static T ThrowInvalidOperationException<T>(string message) => throw new InvalidOperationException(message); }