DEV Community

dvis003
dvis003

Posted on

Custom Errors extend, new and rethrows

Create new Class
  class TypedError extends Error {
    constructor(message,_type,_severity = 0) {
      super(message);
      this.type = _type;
      this.severity = _severity;
    }
  };

unlike the standard Error that you can throw like so

throw Error("Wunderbar")

the extended class should be called with ** new ** keyword

throw new TypedError(error.message,"CustomerOnboardFailed",2)

and if you want to rethrow the CustomError in the trycatch block you should pass the customError object in the rethrow statement

function gonnaThrow(){
    throw new TypedError("CustomError message","InsufficientBalance",9);
  };

  function gonnaRethrow(){
    try {
      gonnaThrow();
    } catch (error) {
      throw error;
    };
  };

  function main(){
    try {
      gonnaRethrow();
    } catch (error) {
      const {name,message,stack,type,severity} = error;
      console.log({name,message,stack,type,severity});
    };
  };

Top comments (0)