Выборочный отлов исключений. Утверждения.
by Artem
JavaScript
'use strict';
function AssertionFailed(message) {
this.message = message;
this.stack = (new Error()).stack;
}
AssertionFailed.prototype = Object.create(Error.prototype);
AssertionFailed.prototype.name = 'AssertionFailed';
function assert(test, message) {
if (!test) {
throw new AssertionFailed(message);
}
}
try {
assert(4 === 5, 'Проверка не пройдена');
} catch (e) {
if (e instanceof AssertionFailed) {
alert(e);
} else {
throw e;
}
}