Custom error object that extends the default Error but has a more versatile constructor that allows setting additional
standard error fields such as name while also allowing setting of custom fields through the constructor making it easier to include
extra detail into the error
Custom error object that extends the default Error but has a more versatile constructor that allows setting additional standard error fields such as name while also allowing setting of custom fields through the constructor making it easier to include extra detail into the error