Javascript 如果没有结果,请单击TJS
我正在使用来执行json搜索Javascript 如果没有结果,请单击TJS,javascript,jquery,arrays,json,Javascript,Jquery,Arrays,Json,我正在使用来执行json搜索 result = JSON.search(data, '//*[name="Gheorghe"]'); 如果在json中找不到该值,我会得到一个错误无法读取未定义的属性“Gheorghe” 如果没有匹配的搜索字符串,是否有方法返回其他内容?为什么不能使用 if(typeof(JSON.search(data, '//*[name="Gheorghe"]')) !== 'undefined') { result = JSON.search(data, '//*[
result = JSON.search(data, '//*[name="Gheorghe"]');
如果在json中找不到该值,我会得到一个错误无法读取未定义的属性“Gheorghe”
如果没有匹配的搜索字符串,是否有方法返回其他内容?为什么不能使用
if(typeof(JSON.search(data, '//*[name="Gheorghe"]')) !== 'undefined') {
result = JSON.search(data, '//*[name="Gheorghe"]');
}
else {
//something else
}
为什么你不能用
if(typeof(JSON.search(data, '//*[name="Gheorghe"]')) !== 'undefined') {
result = JSON.search(data, '//*[name="Gheorghe"]');
}
else {
//something else
}
您可以使用语句
try…catch语句标记要尝试的语句块,并指定在引发异常时的响应
示例
在以下示例中,try块中的代码可能引发三个异常:TypeError、RangeError和EvalError(错误类型:EvalError
,InternalError
,RangeError
,ReferenceError
,SyntaxError
,URIError
)。发生异常时,控制权转移到相应的catch子句。如果该异常不是指定的异常之一,并且找到了无条件catch子句,则控制权转移到该catch子句
var结果;
试一试{
警报(result.id);
}捕获(e){
if(e instanceof TypeError){
//处理TypeError异常的语句
e='这是我的自定义类型错误消息,而不是“无法读取属性…”;
}else if(e instanceof RangeError){
//用于处理RangeError异常的语句
e='这是我的自定义范围错误消息,而不是“无法读取属性…”;
}else if(例如EvalError实例){
//处理EvalError异常的语句
e='这是我的自定义评估错误消息,而不是“无法读取属性…”;
}否则{
//语句来处理任何未指定的异常
e='这是我的自定义未指定错误消息,而不是“无法读取属性…”;
}
log(“Error!”,e);//打印到控制台的自定义错误消息
}
警报(result.id);//打印到控制台默认错误消息result未定义
您可以使用语句
try…catch语句标记要尝试的语句块,并指定在引发异常时的响应
示例
在以下示例中,try块中的代码可能引发三个异常:TypeError、RangeError和EvalError(错误类型:EvalError
,InternalError
,RangeError
,ReferenceError
,SyntaxError
,URIError
)。发生异常时,控制权转移到相应的catch子句。如果该异常不是指定的异常之一,并且找到了无条件catch子句,则控制权转移到该catch子句
var结果;
试一试{
警报(result.id);
}捕获(e){
if(e instanceof TypeError){
//处理TypeError异常的语句
e='这是我的自定义类型错误消息,而不是“无法读取属性…”;
}else if(e instanceof RangeError){
//用于处理RangeError异常的语句
e='这是我的自定义范围错误消息,而不是“无法读取属性…”;
}else if(例如EvalError实例){
//处理EvalError异常的语句
e='这是我的自定义评估错误消息,而不是“无法读取属性…”;
}否则{
//语句来处理任何未指定的异常
e='这是我的自定义未指定错误消息,而不是“无法读取属性…”;
}
log(“Error!”,e);//打印到控制台的自定义错误消息
}
alert(result.id);//打印到控制台默认错误消息result未定义
definant.js,第三方库应该负责解决此问题。我相信您的话,他们没有
在这种情况下,有两种方法可以解决这个问题
“无法读取未定义的属性“Gheorghe”
,您可以运行首选回调var name = "Gheorge";
try {
result = JSON.search(data, '//*[name="' + name + '"]');
}
catch (error === "Cannot read property '" + name + "' of undefined") {
// As there could be any type of error from the function JSON.search
console.log(error);
yourErrorHandler(error);
}
Devigat.js,第三方图书馆应该负责这个问题。我相信你的话,他们不会 在这种情况下,有两种方法可以解决这个问题
“无法读取未定义的属性“Gheorghe”
,您可以运行首选回调var name = "Gheorge";
try {
result = JSON.search(data, '//*[name="' + name + '"]');
}
catch (error === "Cannot read property '" + name + "' of undefined") {
// As there could be any type of error from the function JSON.search
console.log(error);
yourErrorHandler(error);
}