ErrOrValue 3.2.0

There is a newer version of this package available.
See the version list below for details.
dotnet add package ErrOrValue --version 3.2.0
                    
NuGet\Install-Package ErrOrValue -Version 3.2.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="ErrOrValue" Version="3.2.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="ErrOrValue" Version="3.2.0" />
                    
Directory.Packages.props
<PackageReference Include="ErrOrValue" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add ErrOrValue --version 3.2.0
                    
#r "nuget: ErrOrValue, 3.2.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package ErrOrValue@3.2.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=ErrOrValue&version=3.2.0
                    
Install as a Cake Addin
#tool nuget:?package=ErrOrValue&version=3.2.0
                    
Install as a Cake Tool

ErrOrValue

ErrOrValue ❌ ✅

A slim object with errors as values for ASP.NET projects

Example

  // Some method
  public ErrOr<bool> Find()
  {
    var res = new ErrOr<bool>();

    try
    {
      // Happy path
      return res.Set(
        value: true,
        message: "Successfully found it",
        severity: Severity.Info,
        code: HttpStatusCode.OK);

      // Issues
      return res.Set(
        value: false,
        message: "Unable to find it",
        severity: Severity.Warning,
        code: HttpStatusCode.NotFound);
    }
    catch (Exception ex)
    {
      // Exceptions
      return res.Set(
        message: "Something went wrong...",
        severity: Severity.Error,
        code: HttpStatusCode.InternalServerError,
        ex: ex);
    }
  }
  // You can safely access the value if everything is okay
  var res = Find();

  if (res.IsOk)
  {
    Console.WriteLine(res.Value);
  }

Why?

TLDR Most similar packages have overly verbose APIs, less is more, especially when the idea is to use this type everywhere. I even recommend copying this into your project locally rather than using it as a NuGet dependency so you can have full control over it!

Product Compatible and additional computed target framework versions.
.NET net9.0 is compatible.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net9.0

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
5.0.1 361 7/25/2025
5.0.0 150 6/24/2025
4.0.0 145 6/24/2025
3.3.2 282 6/10/2025
3.3.1 266 6/10/2025
3.3.0 267 6/10/2025
3.2.1 188 5/5/2025
3.2.0 151 5/5/2025
3.1.0 94 4/26/2025
3.0.0 161 4/24/2025
2.1.0 168 4/23/2025
2.0.0 165 4/23/2025
1.0.0 162 4/23/2025