The Catch block
The catch block goes normally at the end of the promise chain and it executes itself only in case something went wrong or the reject function was called.
In our case, and because we all dislike Jon Snow, at line 9 we have explicitly defined that in case the ruler's value is 'Jon Snow', this promise will be rejected with some meaningful message. The message is being passed into the reject function, and it can be accessed through the only argument the inner function of the catch block accepts. There you can see it.
Bear in mind! If a promise is rejected at ANY point the whole chain breaks and the remaining .then() blocks will be ignored. The pointer moves from directly to the .catch block and executes this.