JavaScript错误处理:我可以在三元运算符中抛出一个错误? [英] JavaScript error handling: can I throw an error inside a ternary operator?
本文介绍了JavaScript错误处理:我可以在三元运算符中抛出一个错误?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
function foo(params){
var msg =(params.msg) ? params.msg:(throwerror);
//如果`params`内的所有内容定义为
}
我想要做的是确保所有需要的参数,它们位于 param
对象中,并且会发生错误(如果有的话)没有定义
如果这只是愚蠢的,有没有更好的方法来做到这一点?
解决方案
您可以这样做:
function foo(params){
var msg =(params.msg)? params.msg:(function(){throwerror}());
//如果`params`内的所有内容定义为
}
我不会真的推荐它,它使得无法读取的代码。
这也可以工作(不是真的好多了):
function foo(params){
var msg = params.msg || (function(){throwerror}());
//如果`params`内的所有内容定义为
}
或者为了更清洁的方法,做一个命名的功能。
函数_throw(m){throw m; }
function foo params){
var msg = params.msg || _throw( 错误);
//如果params中的所有内容都被定义为
}
Am I allowed to throw an error inside a ternary operator? Is this valid:
function foo(params) {
var msg = (params.msg) ? params.msg : (throw "error");
// do stuff if everything inside `params` is defined
}
What I'm trying to do is make sure all of the parameters needed, which are in a param
object, are defined and throw an error if any one is not defined.
If this is just foolish, is there a better approach to doing this?
解决方案
You could do this:
function foo(params) {
var msg = (params.msg) ? params.msg : (function(){throw "error"}());
// do stuff if everything inside `params` is defined
}
I wouldn't really recommend it though, it makes for unreadable code.
This would also work (not that it's really much better):
function foo(params) {
var msg = params.msg || (function(){throw "error"}());
// do stuff if everything inside `params` is defined
}
Or for a cleaner approach, make a named function.
function _throw(m) { throw m; }
function foo(params) {
var msg = params.msg || _throw("error");
// do stuff if everything inside `params` is defined
}
这篇关于JavaScript错误处理:我可以在三元运算符中抛出一个错误?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文