在 Meteor 中捕获错误的问题

Issue with error catching in Meteor

我正在使用 Meteor 中的 HTTP 方法调用外部 API (Box)。这些工作正常,但我正在尝试实施一些错误处理并且 运行 遇到捕获错误的问题。

Meteor.methods({
    copyTemplateFolder: function () {
    this.unblock();
    var accessToken = Meteor.user().services.box.accessToken;

    var apiURL = "https://api.box.com/2.0/folders/FOLDER_ID/copy";
    var apiCall = HTTP.post(apiURL, {
      params: {access_token: accessToken},
      data: {
        "parent": {
          "id" : FOLDER_ID
        },
        "name": "New Folder"
      }
    });

    try {

      var response = apiCall;
      console.log(response.data);

      return response.data;
    } catch(e) {
      console.log(e);
    }
});

我已经替换了一些 ID 等,但代码在没有错误的情况下工作正常。但是当出现错误时,catch 中的代码永远不会触发。我读过的所有内容都说应该这样做。

有人看到我的操作有问题吗?

您的 try 块不包含实际发生异常的部分。 post 调用将抛出异常。从现有变量中检索子字段永远不会导致异常,即使该字段未定义也是如此。

这可能是您想要的:

Meteor.methods({
    copyTemplateFolder: function () {
    this.unblock();
    var accessToken = Meteor.user().services.box.accessToken;

    var apiURL = "https://api.box.com/2.0/folders/FOLDER_ID/copy";
    try {
      var response = HTTP.post(apiURL, {
        params: {access_token: accessToken},
        data: {
          "parent": {
            "id" : FOLDER_ID
          },
          "name": "New Folder"
        }
      });

      console.log(response.data);
      return response.data;

    } catch(e) {
      console.log(e);
    }
});