JavaScript的try..catch在手机浏览器中出错?

SprWu 2019-02-01 12:38:05
我自己随便写了一个天气的网页,在使用try..catch..来处理地区不正确等问题的时候发现,网页在电脑浏览器内可以实现并且没有任何报错,但在手机浏览器内没法运行。
success: function (data) {
var res = eval("(" + data + ")");
try {
$("#header").text(res.data.city);
for (var i = 0; i < 5; i++) {
$(".day td:eq(" + i + ")").text(res.data.forecast[i].date);
$(".high td:eq(" + i + ")").text(res.data.forecast[i].high);
$(".low td:eq(" + i + ")").text(res.data.forecast[i].low);
$(".wind td:eq(" + i + ")").text(res.data.forecast[i].fengxiang);
$(".type td:eq(" + i + ")").text(res.data.forecast[i].type);
}
}catch{
alert("地区不正确!");
}

//$("table").text(data);
},

去掉try..catch之后手机浏览器便能实现功能
success: function (data) {
var res = eval("(" + data + ")");
$("#header").text(res.data.city);
for (var i = 0; i < 5; i++) {
$(".day td:eq(" + i + ")").text(res.data.forecast[i].date);
$(".high td:eq(" + i + ")").text(res.data.forecast[i].high);
$(".low td:eq(" + i + ")").text(res.data.forecast[i].low);
$(".wind td:eq(" + i + ")").text(res.data.forecast[i].fengxiang);
$(".type td:eq(" + i + ")").text(res.data.forecast[i].type);
}
//$("table").text(data);
},
...全文
742 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
SprWu 2019-02-23
  • 打赏
  • 举报
回复
谢谢各位了,确实catch那里的问题。太粗心了……
licip 2019-02-12
  • 打赏
  • 举报
回复
try {
$("#header").text(res.data.city);
for (var i = 0; i < 5; i++) {
$(".day td:eq(" + i + ")").text(res.data.forecast[i].date);
$(".high td:eq(" + i + ")").text(res.data.forecast[i].high);
$(".low td:eq(" + i + ")").text(res.data.forecast[i].low);
$(".wind td:eq(" + i + ")").text(res.data.forecast[i].fengxiang);
$(".type td:eq(" + i + ")").text(res.data.forecast[i].type);
}
}catch{
alert("地区不正确!");
}
这个写法在电脑上应该也是有问题的,你用的是什么浏览器。
try {
$("#header").text(res.data.city);
for (var i = 0; i < 5; i++) {
$(".day td:eq(" + i + ")").text(res.data.forecast[i].date);
$(".high td:eq(" + i + ")").text(res.data.forecast[i].high);
$(".low td:eq(" + i + ")").text(res.data.forecast[i].low);
$(".wind td:eq(" + i + ")").text(res.data.forecast[i].fengxiang);
$(".type td:eq(" + i + ")").text(res.data.forecast[i].type);
}
}catch(e){
alert("地区不正确!");
}
catch的后面要加(e)表示捕获到异常的对象。
努力的程序⚪ 2019-02-09
  • 打赏
  • 举报
回复
同上,catch要捕捉到错误信息,这个就是catch方法的参数
shw014 2019-02-01
  • 打赏
  • 举报
回复
try-catch 的基本语法是 try { //可能会导致错误的代码 } catch (error) { //在错误发生时怎么处理 } 你少了catch 后面的一对小括号,还有小括号里的 错误对象 如果try块中的任何代码发生了错误,就会立即退出代码执行过程,然后接着执行catch块,此时,catch块会接收到一个包含错误信息的对象。与在其他语言中不同的是,即使你不想使用这个错误对象,也要给它起个名字
try {
    adddlert("欢迎光临!");
}
catch(err) {
    document.getElementById("demo").innerHTML = err.message;
}
丰云 2019-02-01
  • 打赏
  • 举报
回复
没遇到过这种问题,表示有点怀疑。。。

87,907

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧