fix bug https://github.com/AriaLyy/Aria/issues/702
优化异常提示
This commit is contained in:
laoyuyu
2020-06-26 13:32:50 +08:00
parent 3edf40f533
commit 9a174311d9
40 changed files with 252 additions and 190 deletions

View File

@@ -84,7 +84,7 @@ final class HttpDFileInfoTask implements IInfoTask, Runnable {
conn.connect();
handleConnect(conn);
} catch (IOException e) {
failDownload(new AriaHTTPException(TAG,
failDownload(new AriaHTTPException(
String.format("下载失败filePath: %s, url: %s", mEntity.getFilePath(), mEntity.getUrl()),
e), true);
} finally {
@@ -133,7 +133,7 @@ final class HttpDFileInfoTask implements IInfoTask, Runnable {
long len = lenAdapter.handleFileLen(conn.getHeaderFields());
if (!FileUtil.checkMemorySpace(mEntity.getFilePath(), len)) {
failDownload(new AriaHTTPException(TAG,
failDownload(new AriaHTTPException(
String.format("下载失败内存空间不足filePath: %s, url: %s", mEntity.getFilePath(),
mEntity.getUrl())), false);
return;
@@ -183,8 +183,7 @@ final class HttpDFileInfoTask implements IInfoTask, Runnable {
if (!checkLen(len) && !isChunked) {
if (len < 0) {
failDownload(
new AriaHTTPException(TAG,
String.format("任务下载失败文件长度小于0 url: %s", mEntity.getUrl())),
new AriaHTTPException(String.format("任务下载失败文件长度小于0 url: %s", mEntity.getUrl())),
false);
}
return;
@@ -211,7 +210,7 @@ final class HttpDFileInfoTask implements IInfoTask, Runnable {
} else if (!checkLen(len) && !isChunked) {
if (len < 0) {
failDownload(
new AriaHTTPException(TAG,
new AriaHTTPException(
String.format("任务下载失败文件长度小于0 url: %s", mEntity.getUrl())),
false);
}
@@ -229,10 +228,10 @@ final class HttpDFileInfoTask implements IInfoTask, Runnable {
|| code == 307) {
handleUrlReTurn(conn, conn.getHeaderField("Location"));
} else if (code >= HttpURLConnection.HTTP_BAD_REQUEST) {
failDownload(new AriaHTTPException(TAG,
failDownload(new AriaHTTPException(
String.format("任务下载失败errorCode%s, url: %s", code, mEntity.getUrl())), false);
} else {
failDownload(new AriaHTTPException(TAG,
failDownload(new AriaHTTPException(
String.format("任务下载失败errorCode%s, errorMsg: %s, url: %s", code,
conn.getResponseMessage(), mEntity.getUrl())), !CheckUtil.httpIsBadRequest(code));
}
@@ -311,7 +310,7 @@ final class HttpDFileInfoTask implements IInfoTask, Runnable {
ALog.d(TAG, "30x跳转新url为【" + newUrl + "");
if (TextUtils.isEmpty(newUrl) || newUrl.equalsIgnoreCase("null")) {
if (callback != null) {
callback.onFail(mEntity, new AriaHTTPException(TAG, "获取重定向链接失败"), false);
callback.onFail(mEntity, new AriaHTTPException("获取重定向链接失败"), false);
}
return;
}
@@ -321,7 +320,7 @@ final class HttpDFileInfoTask implements IInfoTask, Runnable {
}
if (!CheckUtil.checkUrl(newUrl)) {
failDownload(new AriaHTTPException(TAG, "下载失败重定向url错误"), false);
failDownload(new AriaHTTPException("下载失败重定向url错误"), false);
return;
}
taskOption.setRedirectUrl(newUrl);

View File

@@ -60,7 +60,7 @@ public final class HttpDGInfoTask implements IInfoTask {
ALog.e(TAG, String.format("获取文件信息失败url%s", ((DownloadEntity) entity).getUrl()));
count.getAndIncrement();
failCount.getAndIncrement();
listener.onSubFail((DownloadEntity) entity, new AriaHTTPException(TAG,
listener.onSubFail((DownloadEntity) entity, new AriaHTTPException(
String.format("子任务获取文件长度失败url%s", ((DownloadEntity) entity).getUrl())));
checkGetSizeComplete(count.get(), failCount.get());
}
@@ -111,7 +111,7 @@ public final class HttpDGInfoTask implements IInfoTask {
DownloadEntity subEntity = dTaskWrapper.getEntity();
if (subEntity.getFileSize() > 0) {
count.getAndIncrement();
if (subEntity.getCurrentProgress() < subEntity.getFileSize()){
if (subEntity.getCurrentProgress() < subEntity.getFileSize()) {
// 如果没有完成需要拷贝一份数据
cloneHeader(dTaskWrapper);
}
@@ -132,7 +132,7 @@ public final class HttpDGInfoTask implements IInfoTask {
*/
private void checkGetSizeComplete(int count, int failCount) {
if (failCount == wrapper.getSubTaskWrapper().size()) {
callback.onFail(wrapper.getEntity(), new AriaHTTPException(TAG, "获取子任务长度失败"), false);
callback.onFail(wrapper.getEntity(), new AriaHTTPException("获取子任务长度失败"), false);
notifyLock();
return;
}

View File

@@ -117,21 +117,17 @@ final class HttpDThreadTaskAdapter extends BaseHttpThreadTaskAdapter {
handleComplete();
}
} catch (MalformedURLException e) {
fail(new AriaHTTPException(TAG,
String.format("任务【%s】下载失败filePath: %s, url: %s", getFileName(),
getEntity().getFilePath(), getEntity().getUrl()), e), false);
fail(new AriaHTTPException(String.format("任务【%s】下载失败filePath: %s, url: %s", getFileName(),
getEntity().getFilePath(), getEntity().getUrl()), e), false);
} catch (IOException e) {
fail(new AriaHTTPException(TAG,
String.format("任务【%s】下载失败filePath: %s, url: %s", getFileName(),
getEntity().getFilePath(), getEntity().getUrl()), e), true);
fail(new AriaHTTPException(String.format("任务【%s】下载失败filePath: %s, url: %s", getFileName(),
getEntity().getFilePath(), getEntity().getUrl()), e), true);
} catch (ArrayIndexOutOfBoundsException e) {
fail(new AriaHTTPException(TAG,
String.format("任务【%s】下载失败filePath: %s, url: %s", getFileName(),
getEntity().getFilePath(), getEntity().getUrl()), e), false);
fail(new AriaHTTPException(String.format("任务【%s】下载失败filePath: %s, url: %s", getFileName(),
getEntity().getFilePath(), getEntity().getUrl()), e), false);
} catch (Exception e) {
fail(new AriaHTTPException(TAG,
String.format("任务【%s】下载失败filePath: %s, url: %s", getFileName(),
getEntity().getFilePath(), getEntity().getUrl()), e), false);
fail(new AriaHTTPException(String.format("任务【%s】下载失败filePath: %s, url: %s", getFileName(),
getEntity().getFilePath(), getEntity().getUrl()), e), false);
} finally {
try {
if (file != null) {
@@ -171,7 +167,7 @@ final class HttpDThreadTaskAdapter extends BaseHttpThreadTaskAdapter {
}
handleComplete();
} catch (IOException e) {
fail(new AriaHTTPException(TAG,
fail(new AriaHTTPException(
String.format("文件下载失败savePath: %s, url: %s", getEntity().getFilePath(),
getThreadConfig().url), e), true);
} finally {
@@ -224,8 +220,7 @@ final class HttpDThreadTaskAdapter extends BaseHttpThreadTaskAdapter {
}
handleComplete();
} catch (IOException e) {
fail(new AriaHTTPException(TAG,
String.format("文件下载失败savePath: %s, url: %s", getEntity().getFilePath(),
fail(new AriaHTTPException(String.format("文件下载失败savePath: %s, url: %s", getEntity().getFilePath(),
getThreadConfig().url), e), true);
} finally {
try {

View File

@@ -62,7 +62,7 @@ final class HttpULoader extends AbsNormalLoader<UTaskWrapper> {
new Handler(looper, mStateManager.getHandlerCallback()));
if (tt == null || tt.isEmpty()) {
ALog.e(TAG, "创建线程任务失败");
getListener().onFail(false, new AriaHTTPException(TAG, "创建线程任务失败"));
getListener().onFail(false, new AriaHTTPException("创建线程任务失败"));
return;
}

View File

@@ -54,7 +54,7 @@ final class HttpUThreadTaskAdapter extends BaseHttpThreadTaskAdapter {
@Override protected void handlerThreadTask() {
File uploadFile = new File(getEntity().getFilePath());
if (!uploadFile.exists()) {
fail(new AriaHTTPException(TAG,
fail(new AriaHTTPException(
String.format("上传失败文件不存在filePath: %s, url: %s", getEntity().getFilePath(),
getEntity().getUrl())));
return;
@@ -104,7 +104,7 @@ final class HttpUThreadTaskAdapter extends BaseHttpThreadTaskAdapter {
getEntity().setResponseStr(finish(writer));
} catch (Exception e) {
e.printStackTrace();
fail(new AriaHTTPException(TAG,
fail(new AriaHTTPException(
String.format("上传失败filePath: %s, url: %s", getEntity().getFilePath(),
getEntity().getUrl()), e));
}
@@ -220,7 +220,7 @@ final class HttpUThreadTaskAdapter extends BaseHttpThreadTaskAdapter {
} else {
String msg = "response msg: " + mHttpConn.getResponseMessage() + "code: " + status;
ALog.e(TAG, msg);
fail(new AriaHTTPException(TAG, msg), false);
fail(new AriaHTTPException(msg), false);
}
writer.flush();
writer.close();