以下哪个代码是更好地执行尝试捕捉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