相关疑难解决方法(0)

是否有可能捕获JavaScript异步回调中抛出的异常?

有没有办法捕获JavaScript回调中的异常?它甚至可能吗?

Uncaught Error: Invalid value for property <address>
Run Code Online (Sandbox Code Playgroud)

这是jsfiddle:http://jsfiddle.net/kjy112/yQhhy/

try {
    // this will cause an exception in google.maps.Geocoder().geocode() 
    // since it expects a string.
    var zipcode = 30045; 
    var map = new google.maps.Map(document.getElementById('map_canvas'), {
        zoom: 5,
        center: new google.maps.LatLng(35.137879, -82.836914),
        mapTypeId: google.maps.MapTypeId.ROADMAP
    });
    // exception in callback:
    var geo = new google.maps.Geocoder().geocode({ 'address': zipcode }, 
       function(geoResult, geoStatus) {
          if (geoStatus != google.maps.GeocoderStatus.OK) console.log(geoStatus);
       }
    );
} catch (e) {
    if(e instanceof TypeError)
       alert('TypeError');
    else
       alert(e);
}?
Run Code Online (Sandbox Code Playgroud)

javascript google-maps exception callback

60
推荐指数
3
解决办法
3万
查看次数

JavaScript中的任意对象方法和属性

我确信之前已经得到了明确的回答,我试图搜索它......也许我的搜索条件错了......

基本上我有一个对象myObject,我有一组已定义的属性和方法.我想要做的是能够处理我尚未定义的属性和方法的调用/引用.

例如,假设我有这个:

var myObject = {
  someProperty : 'foobar',
  someFunction : function () { /* Do stuff */ }
}
Run Code Online (Sandbox Code Playgroud)

目前,如果有人试图打电话myObject.someOtherFunction(),JavaScript会对此大吼大叫.我想要做的是设置一种自动处理它的方法.因此,例如,我的对象只返回false,而不是JavaScript抛出错误.这可能吗?

另一种看待它的方法是:

var myObject = {
  someFunction : function () { /* Do stuff */ }
  magicBucket : function () { /* Do stuff */ }
}
Run Code Online (Sandbox Code Playgroud)

如果我打电话myObject.someFunction(),那就是定义并做某事.我想要发生的是,如果我要调用myObject.someOtherFunction(),而不是JavaScript抛出错误,它会调用myObject.magicBucket().

原因是我有一个客户端在他们的网站上使用第三方库.他们想停止使用它,但完全删除它需要花费大量的时间和精力.因此,作为一个短期解决方案,他们想知道我是否可以创建一个基本上什么都不做的虚拟文件.好吧,这个库使用了几个有很多方法的对象.我可以通过一切并制作虚拟对象,但我想也许可能有一些简单的"全能"方法来做到这一点.

有些人提到检查方法是否存在,将其包装在条件或try..catch等等.嗯,这一点是我此时无法触及对方法的实际调用.由于总体目标是最终完全删除编码,因此它甚至不适用.

javascript object

5
推荐指数
1
解决办法
2007
查看次数

标签 统计

javascript ×2

callback ×1

exception ×1

google-maps ×1

object ×1