我在整数变量上使用array.pop()函数,并期望出现错误。
当前,我收到“TypeError:x.pop不是函数”消息。
我想使用“throw”用我自己的消息覆盖它

我尝试在第一个catch块中使用另一个try-catch,这可以完成工作。但是我想在第一个try块本身中覆盖第一个TypeError异常。

let x = 3
try {
    x.pop();
// I want to override the exception generated due to this line
// with my own error message using throw
}
catch (e) {
    try {
        throw thisErr("this is my custom error message..")
    }
    catch (er) {
        console.log(er);
    }
}

function thisErr(message) {
    let moreInfo = message
    let name = "My Exception"
    return `${name}: "${moreInfo}"`
}

我期待My Exception: "this is my custom error message.."

最佳答案

使用console.error(er)

let x = 3
try {
    x.pop();
}
catch (e) {

        var er = thisErr("this is my custom error message..");
        // log(black)  My Exception: "this is my custom error message.."
        console.log(er);
        // error(red)  My Exception: "this is my custom error message.."
        console.error(er);
        // error(red) Uncaught My Exception: "this is my custom error message.."
        throw er;

}
function thisErr(message) {
    let moreInfo = message
    let name = "My Exception"
    return `${name}: "${moreInfo}"`
}

关于javascript - 如何覆盖内置异常?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55529110/

10-16 23:23