当前位置: 首页 > 知识库问答 >
问题:

JSONException 从不在相应的 try 语句中抛出

凌鹏程
2023-03-14
@Override
public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
    try {
        if (action.equals("init")) {    
            ctrl = io.display.sdk.Controller.getInstance();
            ctrl.getInstance().init(cordova.getActivity().getBaseContext(), "5017");                
        } else if (action.equals("showAds")) {
            ctrl.setEventListener(new EventListener() {
                @Override
                public void onInit() {
                    ctrl.showAd("1445");
                }
            });
            callbackContext.success("");
        } 
        return true;

    } catch (JSONException e) {
        e.printStackTrace();
        callbackContext.error("Exception: " + e.getMessage());
        return false;      
    }         
}

执行此代码时,我收到以下错误:

JSONException 从不在相应的 try/catch body 语句中抛出。

你能解释一下为什么抛出这个异常吗?语法在我看来还行。

共有3个答案

秦才
2023-03-14

抛出JSONExceptiontry-catch,这两条语句可以相互替换。

从签名中删除抛出的 JSONException异常将进入 try 正文

董同
2023-03-14

由于您使用的是方法的抛出,因此您需要将 try catch 块围绕函数调用。

华君浩
2023-03-14

这里的问题是你把JSONArray作为一个参数,但是你从来没有在你的方法中使用它。因此,不会抛出JSON相关的异常。

catch块应捕获try块引发的可能异常

 类似资料:
  • 我已经看到过一个类似的问题,但是我还没有找到一个解决方案,因为在我的例子中,放入try子句的函数实际上会引发一个异常。 在my try块中,psv main调用方法,该方法打印2并引发名为myexc3的异常。然后,这个异常应该由处理,它应该打印3等等。但代码实际上并不编译: 异常MyExc3从不在相应try语句的正文中抛出 这是为什么?

  • 我不是太笨,不会意识到“try catch”中的代码不能抛出异常。但是我被困在这里,因为我完全从书中复制了代码,所以它在出版时肯定是正确的。这让我想知道代码是否不能再编译了,因为它已经过时了?我意识到这个问题的性质可能会冒犯在座的一些人。如果是的话,请不要在严厉的斥责中过于严厉。 我得到了一个错误: ./streamcopier.java:13:错误:异常IOException从不在相应try语句

  • 在我更好地学习Java的过程中,我一直试图理解异常处理。我不明白为什么下面的代码不能编译。 编译器消息为:

  • 问题内容: 我在Java中进行异常处理时遇到问题,这是我的代码。尝试运行以下行时出现编译器错误:。错误是: 永远不会在相应的try语句的主体中引发MojException异常 这是代码: 这是MojException的代码: 谁能帮我这个? 问题答案: try语句中的catch块需要 精确 捕获-block 内的代码 可能 抛出的异常(或该异常的超类)。 您想做的是这样的: 这将导致编译器错误,因

  • 这是我的堆栈代码的数组实现: 这是OverFlowException类: 当我运行这个编译器时给出错误“exception OverFlowException is never thrown in body of response try statement” 然后我意识到我没有包含检查数组是否为isFull()的部分。 我的问题是我在ArrayStack2类中有isFull()方法,以及如何从O

  • 问题内容: 有没有更好的方法来执行以下操作: 看起来很讨厌,我不想这样做: 保持最高效率。 问题答案: 也许您可以尝试这样的事情: 您可以这样称呼它: 这将尝试按它们在列表中的顺序调用这些方法。如果您想传递任何参数,可以像下面这样在列表之后传递它们: