What is the use of throw (as an exeption)?

I was reading about exceptions in MDN, and bumped in this code:

// Create an object type UserException
function UserException(message) {
  this.message = message;
  this.name = 'UserException';
}
let random = new UserException("Frodo is alive!") // => { message: 'Frodo is Alive', name: 'UserException' }
// Make the exception convert to a pretty string when used as a string 
// (e.g., by the error console)
UserException.prototype.toString = function() {
  return `${this.name}: "${this.message}"`;
}

// Create an instance of the object type and throw it
throw new UserException('Value too high');

I see that a string is thrown, but according to which criteria? And why? Also, is it always true? Please provide an example in which this could be useful. Thank you very much in advanceā€¦