Throwing exceptions in expressions in C# 7.0

C# 7.0 makes it possible to throw exceptions with ternary and null-coalescing operators.

Here’s an example where we throw an exception if the divisor is 0:

private double Divide(double what, double withWhat)
{
	return withWhat != 0 ? what / withWhat : throw new ArgumentException("nono");
}

If the divisor is not 0 then we return the result otherwise we throw an exception.

Another place where we now can throw exceptions is with null-coalescing operators. Here’s a Dog class with a constructor where we want to throw an exception if the Dog name is null:

public class Dog
{
	private string name;
	public Dog(string name) => this.name = name ?? throw new ArgumentNullException("Dog name");
}

View all various C# language feature related posts here.

Advertisements

About Andras Nemes
I'm a .NET/Java developer living and working in Stockholm, Sweden.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

w

Connecting to %s

ultimatemindsettoday

A great WordPress.com site

Elliot Balynn's Blog

A directory of wonderful thoughts

Robin Sedlaczek's Blog

Developer on Microsoft Technologies

Softwarearchitektur in der Praxis

Wissenswertes zu Webentwicklung, Domain-Driven Design und Microservices

the software architecture

thoughts, ideas, diagrams,enterprise code, design pattern , solution designs

Technology Talks

on Microsoft technologies, Web, Android and others

Software Engineering

Web development

Disparate Opinions

Various tidbits

chsakell's Blog

WEB APPLICATION DEVELOPMENT BEST PRACTICES WITH MICROSOFT STACK & ANGULAR

Cyber Matters

Bite-size insight on Cyber Security for the not too technical.

Guru N Guns's

OneSolution To dOTnET.

Johnny Zraiby

Measuring programming progress by lines of code is like measuring aircraft building progress by weight.

%d bloggers like this: