-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 save 引数を使用すると、全体を入れても疑問が生じますtry catch ブロック内のコードは、どういうわけか私には意味がありません。

これについて助けが必要です。

4

2 に答える 2

1

コードは同じことを行いませんが、2 番目の例を修正した場合は、関連するコードを一緒に配置しているため、より良いと言えます。

ただし、より明確であると思われることを行うことをお勧めします。最初の例はおそらく正しいため、より良い選択になる可能性があります。

于 2012-07-05T07:00:01.017 に答える
0

通常、何らかのエラーが予想される場所で try catch を使用します。たとえば、数値を別の数値で除算しようとしていて、ゼロである場合、確かにエラーがスローされます。そこで、try catch を使用します。

これは実行時エラーをキャッチするためのもので、try catch を使用します。

すべてのコードで必ず try catch を使用する必要はありませんが、try catch を使用すると、例外が表示される可能性が低くなります。

于 2012-07-05T07:06:07.523 に答える