-2

以下哪个代码更好地实现

public string myfunc(JSONArray funcargs){

    int ctxHandle;
    String StringParam=null;
    JSONObject jObj=null;

    try {
        ctxHandle = funcargs.getInt(2);
        if(funcargs.length() == 4) {
            try {
                StringParam = funcargs.getString(3);
            } catch (JSONException jsonEx) {
                jObj = funcargs.getJSONObject(3);
            }
        }
    } catch (JSONException jsonEx) {
        SendJS = "javascript:" + FailureCallBack + "('" + jsonEx.getMessage() + "')"; 
        sendJavascript(SendJS);
        return null;
    }

    //This will return an integer
    ret_val = get_data(ctxHandle);
    SendJS = "javascript:" + SuccessCallBack + "('" + Integer.toString(ret_val);
    if(StringParam != null)
        SendJS  += "','" + StringParam + "')";
    else if(jObj != null)
        SendJS  += "','" + jObj + "')";
    else 
        SendJS  += "')";

    sendJavascript(SendJS);
    return null;
}

或者

public string myfunc(JSONArray funcargs){

    int ctxHandle;
    String StringParam=null;
    JSONObject jObj=null;

    try{
        ctxHandle = funcargs.getInt(2);
        //This will return an integer
        ret_val = get_data(ctxHandle);
        SendJS = "javascript:" + SuccessCallBack + "('" + Integer.toString(ret_val);
        if(funcargs.length() == 4) {
            try {
                StringParam = funcargs.getString(3);
                SendJS  += "','" + StringParam + "')";
            } catch (JSONException jsonEx) {
                jObj = funcargs.getJSONObject(3);
                SendJS  += "','" + jObj + "')";
            }
            SendJS  += "')";
        }
    } catch (JSONException jsonEx) {
        SendJS = "javascript:" + FailureCallBack + "('" + jsonEx.getMessage() + "')"; 
    }

    sendJavascript(SendJS);
    return null;                        
}

个人来自Java if vs. try/catch 开销线程我知道try/catch应该只在你不确定结果并且可以处理异常但 if else if can be saved 参数产生一些疑问的情况下,尽管把整个try catch 块中的代码对我来说毫无意义。

在这方面需要帮助。

4

2 回答 2

1

代码不会做同样的事情,但是如果您修复了第二个示例,我会说它更好,因为您将相关代码放在一起。

但是,我建议你应该做你认为更清楚的事情,因为第一个例子可能是正确的,它可能是你更好的选择。

于 2012-07-05T07:00:01.017 回答
0

通常我们在预期会出现错误的地方使用 try catch。例如,您要将一个数字与另一个数字相除,结果为零,肯定会引发错误。在那里我们将使用 try catch。

那是为了捕捉运行时错误,我们使用try catch。

并非必须在所有代码中都使用 try catch,但使用 try catch 会减少显示异常的机会。

于 2012-07-05T07:06:07.523 回答