forked from ard/ruoyi-api

zhangnaisong
2023-10-06 f8ca81e96bcb9a9a05531d606f1dd67953c7a976
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
module.exports = function createCustomError(name, message) {
    // use Object.create(), because some VMs prevent setting line/column otherwise
    // (iOS Safari 10 even throws an exception)
    var error = Object.create(SyntaxError.prototype);
    var errorStack = new Error();
 
    error.name = name;
    error.message = message;
 
    Object.defineProperty(error, 'stack', {
        get: function() {
            return (errorStack.stack || '').replace(/^(.+\n){1,3}/, name + ': ' + message + '\n');
        }
    });
 
    return error;
};