ByteDev.Exceptions
2.0.0
See the version list below for details.
dotnet add package ByteDev.Exceptions --version 2.0.0
NuGet\Install-Package ByteDev.Exceptions -Version 2.0.0
<PackageReference Include="ByteDev.Exceptions" Version="2.0.0" />
paket add ByteDev.Exceptions --version 2.0.0
#r "nuget: ByteDev.Exceptions, 2.0.0"
// Install ByteDev.Exceptions as a Cake Addin #addin nuget:?package=ByteDev.Exceptions&version=2.0.0 // Install ByteDev.Exceptions as a Cake Tool #tool nuget:?package=ByteDev.Exceptions&version=2.0.0
ByteDev.Exceptions
Small collection of exceptions in a .NET Standard library.
Installation
ByteDev.Exceptions has been written as a .NET Standard 2.0 library, so you can consume it from a .NET Core or .NET Framework 4.6.1 (or greater) application.
ByteDev.Exceptions is hosted as a package on nuget.org. To install from the Package Manager Console in Visual Studio run:
Install-Package ByteDev.Exceptions
Further details can be found on the nuget page.
Release Notes
Releases follow semantic versioning.
Full details of the release notes can be viewed on GitHub.
Usage
The library consists of a small set of custom exceptions:
ArgumentDefaultException
ArgumentEmptyException
ArgumentNullOrEmptyException
DependencyNullException
EntityNotFoundException
UnexpectedEnumValueException
ArgumentDefaultException
Use when an argument value cannot be it's default
value.
if (myArg == default)
{
throw new ArgumentDefaultException(nameof(myArg));
}
ArgumentEmptyException
Use when an argument value cannot be empty.
For example an empty string or empty collection.
if (name == string.Empty)
{
throw new ArgumentEmptyException(nameof(name));
}
ArgumentNullOrEmptyException
Use when an argument value cannot be null or empty.
Often in such situations the programmer will decide to throw a ArgumentException
.
Using a ArgumentNullOrEmptyException
instead can give greater precision of the problem.
if (string.IsNullOrEmpty(name))
{
throw new ArgumentNullOrEmptyException(nameof(name));
}
DependencyNullException
Use when an injected dependency is null.
Classes often have dependencies that are injected at runtime through constructor, method or property injection.
A developer will often check the passed in dependency and if null throw a ArgumentNullException
.
Using a DependencyNullException
instead can give greater precision of the problem.
public MyService(IRepository repository)
{
_repository = repository ?? throw new DependencyNullException(typeof(IRepository));
}
EntityNotFoundException
Use when an entity is expected to exist and does not.
For example an entity retrieved from storage or a database.
Sometimes instead of returning null
from the method throwing an exception may seem more appropriate.
var customer = customerRepository.GetCustomer(id);
if (customer == null)
{
throw new EntityNotFoundException(typeof(Customer), id);
}
UnexpectedEnumValueException
Use when an unexpected enum
value is encountered.
enum LightStatus
{
Off,
Dimmed,
On
}
// ...
switch (lightStatus)
{
case LightStatus.Off:
// do something...
break;
case LightStatus.Dimmed:
// do something...
break;
case LightStatus.On:
// do something...
break;
default:
throw new UnexpectedEnumValueException<LightStatus>(lightStatus);
}
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- No dependencies.
NuGet packages (1)
Showing the top 1 NuGet packages that depend on ByteDev.Exceptions:
Package | Downloads |
---|---|
ByteDev.ArgValidation
.NET Standard library of helper methods to help validate arguments. |
GitHub repositories
This package is not used by any popular GitHub repositories.