如果条件适用,我想在try
块中默默地破解catch
- try
。 (不抛出不必要的例外)
foo = function(){
var bar = Math.random() > .5;
try{
if( bar ) // Break this try, even though there is no exception here.
// This code should not execute if !!bar
alert( bar );
}
catch( e ){}
// Code that executes if !!bar
alert( true );
}
foo();
但是,return
不是一个选项,因为该函数应该在之后继续执行。
更新
我仍然希望继续使用finally
块。
答案 0 :(得分:4)
您可以使用 break 标签 语法标记一个块并将其中断
根据您的修改,终于仍在执行
foo = function(){
var bar = Math.random() > .5;
omgalabel: try {
if( bar ) break omgalabel;
console.log( bar );
// code
}
catch( e ){
// This code should not execute if !!bar
}
finally {
// Code that executes no matter what
console.log( true );
}
}
答案 1 :(得分:1)
foo = function(){
var bar = Math.random() > .5;
if( ! bar ) {
try{
// This code should not execute if !!bar
alert( bar );
}
catch( e ){
console.error(e);
}
}
// Code that executes no matter what
alert( true );
}
foo();
为什么不在输入try…catch
之前检查布尔值?
答案 2 :(得分:0)
[][[ID] = [^.ID]].Sum([Balance])
您可以在try catch内抛出错误,并检测错误堆栈的字符串以查看它是预期的抛出还是意外的实际错误