以下哪個代碼是更好地執行嘗試捕捉VS的if else
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;
}
OR
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 overhead線程我明白try/catch
應該只在你身在何處的情況下使用結果不確定,並且可以處理異常,但是如果可以保存參數,則會產生一些疑問,儘管將整個代碼放在try catch塊中對我來說沒有任何意義。
需要幫助。
你可以從代碼中刪除不相關的部分嗎?並指出不同的部分? – Thilo
@Thilo整個想法是將函數作爲一個整體進行分析,而不是僅僅從零散的角度看它,而只看它的15行代碼。所以我發佈:) – nimish