所以我并不是真的有问题,但我确实有一个关于如何正确调试的问题。例如,在我的例子中,我在 Global 类中有方法。
当我从另一个类运行它时,我必须用 try/catch 包围它。 但是,当我的代码中出现问题时,它只会向我显示“throw”。所有其他 Log.*/System.out.println() 都不会显示。
public <T> T run(Class<T> a, String url, File file, String jsonObject, String contentType) throws Exception {
if(file.exists()){
requestBody = new MultipartBody.Builder()
.setType(MultipartBody.FORM)
.addFormDataPart("jsonObject", jsonObject)
.addFormDataPart("image", file.getName(), RequestBody.create(MediaType.parse(contentType), file))
.build();
} else{
requestBody = new MultipartBody.Builder()
.setType(MultipartBody.FORM)
.addFormDataPart("jsonObject", jsonObject)
.build();
}
Request request = new Request.Builder()
.url(API_SERVER + url)
.post(requestBody)
.build();
System.out.println
Response response = client.newCall(request).execute();
if (response.isSuccessful()) throw new IllegalArgumentException("!response.isSuccessful():" + response.body().string());
String jsonResponse = response.body().string();
response.body().close();
Gson gson = new Gson();
return gson.fromJson(jsonResponse, a);
}
在我的案例中看到任何东西的唯一方法是更改 if 语句。
if (!response.isSuccessful()) throw new IllegalArgumentException("!response.isSuccessful():" + response.body().string());
你们能建议我改变什么,这样我就可以更轻松地调试而不是替换我的 if,等待重建、部署和测试...
最佳答案
您定义的类抛出
一个异常
,这意味着如果此方法中有任何异常,它将从调用该方法的堆栈中抛回.
您需要在 try
和 catch
block 中处理抛出的异常,您将在 catch
block 中接收抛出的异常测试异常的细节,并据此对要运行的代码采取下一步。
我认为 Log.e 会在您的调试控制台中打印异常。
http://developer.android.com/reference/android/util/Log.html
关于java - 调试安卓java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41124926/