打破 try/throw/catch

Break on try/throw/catch

我正在尝试使用 try/throw/catch 在 console.log() 中以正确的方式显示错误格式。如果我使用此代码:

var add = function ( a, b ) {
    try {
        if ( typeof a !== 'number' || typeof b !== 'number' ) throw {
            name: 'TypeError!\n',
            message: 'You must enter two numbers'
        }
    } catch ( e ) {
        console.log( e.name + e.message );
    }
    return a + b;
}
console.log( add( 3, undefined ) );

我的控制台显示:

TypeError!
You must use two numbers as parameters
NaN

我怎样才能破坏函数以仅在控制台日志中获取错误而不是结果,在本例中为 NaN?我尝试在 catch 中的控制台日志后使用 break 语句,但控制台显示:

Uncaught SyntaxError: Illegal break statement

你只能在循环中使用break,你应该从函数中使用return到return。你也可以选择不捕获异常,让它流回调用者。

例子:

var add = function ( a, b ) {
    if ( typeof a !== 'number' || typeof b !== 'number' ) throw {
        name: 'TypeError!\n',
        message: 'You must enter two numbers'
    }
    return a + b;
}

try {
    console.log( add( 3, undefined ) );
} catch ( e ) {
    console.log( e.name + e.message );
}