@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语句中抛出。
你能解释一下为什么抛出这个异常吗?语法对我来说没问题。
答案 0 :(得分:0)
这里的问题是你将JSONArray作为参数,但你从未在方法中使用它。因此不会抛出与JSON相关的异常。
catch块应该捕获try块抛出的可能异常
答案 1 :(得分:0)
由于您使用throws作为方法,因此需要围绕函数调用包围try catch块。
答案 2 :(得分:0)
两个陈述Throws JSONException
和try-catch
可以互相替换。
从签名中删除throws JSONException
,异常将进入try body