下午好,Android Java - 如何在finally中拋出一個try-catch-finally,全部在抽象類中進行重構?
我目前的代碼工作的:
https://github.com/kevinsawicki/http-request
我試圖重構適用於清除所有的Android工作室警告之前,我將其包含在代碼我正在進行一個項目。目前,我用下面的嵌套的抽象類工作:
///////////////////////////////////////////////////////////////////////////////////////////////
protected static abstract class Operation<V> implements Callable<V> {
protected abstract V run() throws HttpRequestException, IOException;
protected abstract void done() throws IOException;
public V call() throws HttpRequestException {
Log.d(TAG, "in HttpRequest nested class Operation call");
boolean thrown = false;
try {
return run();
} catch (HttpRequestException e) {
thrown = true;
throw e;
} catch (IOException e) {
thrown = true;
throw new HttpRequestException(e);
} finally {
try {
done();
} catch (IOException e) {
if (!thrown) {
throw new HttpRequestException(e);
}
}
}
}
} // end Operation
這產生以下警告對於具有finally塊內拋出:
我一直在尋找這個一段時間,但我似乎無法找到一種方法來排除此警告。我沒有看到這對方的回答:
throws Exception in finally blocks
但是我真的喜歡不引入其他功能。如果我要引入一個closeQuietly函數,是否會進入上面列出的嵌套類的內部或外部?請指教,謝謝!
我知道它的一個警告,我把它放入作品之前的目標是刪除儘可能多的警告。你能建議一個重構來實現這個嗎? – cdahms