优化异常提示
This commit is contained in:
laoyuyu
2020-02-06 22:22:10 +08:00
parent 96efa35c4e
commit e015c2a2f7
55 changed files with 324 additions and 523 deletions

View File

@@ -30,8 +30,7 @@ import com.arialyy.aria.core.processor.IBandWidthUrlConverter;
import com.arialyy.aria.core.processor.IKeyUrlConverter;
import com.arialyy.aria.core.wrapper.AbsTaskWrapper;
import com.arialyy.aria.core.wrapper.ITaskWrapper;
import com.arialyy.aria.exception.M3U8Exception;
import com.arialyy.aria.exception.TaskException;
import com.arialyy.aria.exception.AriaM3U8Exception;
import com.arialyy.aria.http.ConnectionHelp;
import com.arialyy.aria.http.HttpTaskOption;
import com.arialyy.aria.util.ALog;
@@ -296,7 +295,7 @@ final public class M3U8InfoTask implements IInfoTask {
ALog.d(TAG, "30x跳转新url为【" + newUrl + "");
if (TextUtils.isEmpty(newUrl) || newUrl.equalsIgnoreCase("null")) {
if (mCallback != null) {
mCallback.onFail(mEntity, new TaskException(TAG, "获取重定向链接失败"), false);
mCallback.onFail(mEntity, new AriaM3U8Exception(TAG, "获取重定向链接失败"), false);
}
return;
}
@@ -354,7 +353,7 @@ final public class M3U8InfoTask implements IInfoTask {
}
private void failDownload(String errorInfo, boolean needRetry) {
mCallback.onFail(mEntity, new M3U8Exception(TAG, errorInfo), needRetry);
mCallback.onFail(mEntity, new AriaM3U8Exception(TAG, errorInfo), needRetry);
}
/**

View File

@@ -21,8 +21,7 @@ import com.arialyy.aria.core.common.RequestEnum;
import com.arialyy.aria.core.common.SubThreadConfig;
import com.arialyy.aria.core.download.DownloadEntity;
import com.arialyy.aria.core.task.AbsThreadTaskAdapter;
import com.arialyy.aria.exception.AriaIOException;
import com.arialyy.aria.exception.TaskException;
import com.arialyy.aria.exception.AriaM3U8Exception;
import com.arialyy.aria.http.ConnectionHelp;
import com.arialyy.aria.http.HttpTaskOption;
import com.arialyy.aria.util.ALog;
@@ -92,15 +91,15 @@ public final class M3U8ThreadTaskAdapter extends AbsThreadTaskAdapter {
handleConn(conn);
} catch (MalformedURLException e) {
fail(new TaskException(TAG,
fail(new AriaM3U8Exception(TAG,
String.format("分片【%s】下载失败filePath: %s, url: %s", getThreadRecord().threadId,
getThreadConfig().tempFile.getPath(), getEntity().getUrl()), e), false);
} catch (IOException e) {
fail(new TaskException(TAG,
fail(new AriaM3U8Exception(TAG,
String.format("分片【%s】下载失败filePath: %s, url: %s", getThreadRecord().threadId,
getThreadConfig().tempFile.getPath(), getEntity().getUrl()), e), true);
} catch (Exception e) {
fail(new TaskException(TAG,
fail(new AriaM3U8Exception(TAG,
String.format("分片【%s】下载失败filePath: %s, url: %s", getThreadRecord().threadId,
getThreadConfig().tempFile.getPath(), getEntity().getUrl()), e), false);
} finally {
@@ -138,7 +137,7 @@ public final class M3U8ThreadTaskAdapter extends AbsThreadTaskAdapter {
|| code == 307) {
handleUrlReTurn(conn, conn.getHeaderField("Location"));
} else {
fail(new TaskException(TAG,
fail(new AriaM3U8Exception(TAG,
String.format("连接错误http错误码%surl%s", code, getThreadConfig().url)),
false);
}
@@ -151,7 +150,7 @@ public final class M3U8ThreadTaskAdapter extends AbsThreadTaskAdapter {
private void handleUrlReTurn(HttpURLConnection conn, String newUrl) throws IOException {
ALog.d(TAG, "30x跳转新url为【" + newUrl + "");
if (TextUtils.isEmpty(newUrl) || newUrl.equalsIgnoreCase("null")) {
fail(new AriaIOException(TAG, "下载失败重定向url为空"), false);
fail(new AriaM3U8Exception(TAG, "下载失败重定向url为空"), false);
return;
}
@@ -161,14 +160,14 @@ public final class M3U8ThreadTaskAdapter extends AbsThreadTaskAdapter {
}
if (!CheckUtil.checkUrl(newUrl)) {
fail(new AriaIOException(TAG, "下载失败重定向url错误"), false);
fail(new AriaM3U8Exception(TAG, "下载失败重定向url错误"), false);
return;
}
String cookies = conn.getHeaderField("Set-Cookie");
conn.disconnect(); // 关闭上一个连接
URL url = ConnectionHelp.handleUrl(newUrl, mHttpTaskOption);
conn = ConnectionHelp.handleConnection(url, mHttpTaskOption);
if (!TextUtils.isEmpty(cookies)){
if (!TextUtils.isEmpty(cookies)) {
conn.setRequestProperty("Cookie", cookies);
}
if (mHttpTaskOption.isChunked()) {
@@ -199,7 +198,7 @@ public final class M3U8ThreadTaskAdapter extends AbsThreadTaskAdapter {
}
handleComplete();
} catch (IOException e) {
fail(new AriaIOException(TAG,
fail(new AriaM3U8Exception(TAG,
String.format("文件下载失败savePath: %s, url: %s", getThreadConfig().tempFile.getPath(),
getThreadConfig().url), e), true);
} finally {
@@ -242,7 +241,7 @@ public final class M3U8ThreadTaskAdapter extends AbsThreadTaskAdapter {
}
handleComplete();
} catch (IOException e) {
fail(new AriaIOException(TAG,
fail(new AriaM3U8Exception(TAG,
String.format("文件下载失败savePath: %s, url: %s", getThreadConfig().tempFile.getPath(),
getThreadConfig().url), e), true);
} finally {

View File

@@ -32,9 +32,8 @@ import com.arialyy.aria.core.processor.ILiveTsUrlConverter;
import com.arialyy.aria.core.processor.ITsMergeHandler;
import com.arialyy.aria.core.task.ThreadTask;
import com.arialyy.aria.core.wrapper.ITaskWrapper;
import com.arialyy.aria.exception.BaseException;
import com.arialyy.aria.exception.M3U8Exception;
import com.arialyy.aria.exception.TaskException;
import com.arialyy.aria.exception.AriaM3U8Exception;
import com.arialyy.aria.exception.AriaException;
import com.arialyy.aria.m3u8.BaseM3U8Loader;
import com.arialyy.aria.m3u8.IdGenerator;
import com.arialyy.aria.m3u8.M3U8InfoTask;
@@ -255,7 +254,7 @@ final class M3U8LiveLoader extends BaseM3U8Loader {
ALog.d(TAG, "更新直播的m3u8文件");
}
@Override public void onFail(AbsEntity entity, BaseException e, boolean needRetry) {
@Override public void onFail(AbsEntity entity, AriaException e, boolean needRetry) {
}
});
@@ -275,7 +274,7 @@ final class M3U8LiveLoader extends BaseM3U8Loader {
}
}
if (TextUtils.isEmpty(url) || !url.startsWith("http")) {
fail(new M3U8Exception(TAG, String.format("ts地址错误url%s", url)), false);
fail(new AriaM3U8Exception(TAG, String.format("ts地址错误url%s", url)), false);
return;
}
offerPeer(new M3U8LiveLoader.ExtInfo(url, extInf));
@@ -283,7 +282,7 @@ final class M3U8LiveLoader extends BaseM3U8Loader {
});
}
private void fail(BaseException e, boolean needRetry) {
private void fail(AriaM3U8Exception e, boolean needRetry) {
getListener().onFail(needRetry, e);
handleComplete();
}
@@ -296,13 +295,13 @@ final class M3U8LiveLoader extends BaseM3U8Loader {
if (generateIndexFile(true)) {
getListener().onComplete();
} else {
getListener().onFail(false, new TaskException(TAG, "创建索引文件失败"));
getListener().onFail(false, new AriaM3U8Exception(TAG, "创建索引文件失败"));
}
} else if (mM3U8Option.isMergeFile()) {
if (mergeFile()) {
getListener().onComplete();
} else {
getListener().onFail(false, new M3U8Exception(TAG, "合并文件失败"));
getListener().onFail(false, new AriaM3U8Exception(TAG, "合并文件失败"));
}
} else {
getListener().onComplete();

View File

@@ -35,8 +35,8 @@ import com.arialyy.aria.core.manager.ThreadTaskManager;
import com.arialyy.aria.core.processor.IVodTsUrlConverter;
import com.arialyy.aria.core.task.ThreadTask;
import com.arialyy.aria.core.wrapper.ITaskWrapper;
import com.arialyy.aria.exception.BaseException;
import com.arialyy.aria.exception.M3U8Exception;
import com.arialyy.aria.exception.AriaException;
import com.arialyy.aria.exception.AriaM3U8Exception;
import com.arialyy.aria.m3u8.BaseM3U8Loader;
import com.arialyy.aria.m3u8.M3U8Listener;
import com.arialyy.aria.m3u8.M3U8TaskOption;
@@ -517,10 +517,10 @@ final class M3U8VodLoader extends BaseM3U8Loader {
urls.addAll((Collection<? extends String>) info.obj);
}
if (urls.isEmpty()) {
fail(new M3U8Exception(TAG, "获取地址失败"), false);
fail(new AriaM3U8Exception(TAG, "获取地址失败"), false);
return;
} else if (!urls.get(0).startsWith("http")) {
fail(new M3U8Exception(TAG, "地址错误请使用IVodTsUrlConverter处理你的url信息"), false);
fail(new AriaM3U8Exception(TAG, "地址错误请使用IVodTsUrlConverter处理你的url信息"), false);
return;
}
mM3U8Option.setUrls(urls);
@@ -534,13 +534,13 @@ final class M3U8VodLoader extends BaseM3U8Loader {
}
}
@Override public void onFail(AbsEntity entity, BaseException e, boolean needRetry) {
@Override public void onFail(AbsEntity entity, AriaException e, boolean needRetry) {
fail(e, needRetry);
}
});
}
protected void fail(BaseException e, boolean needRetry) {
protected void fail(AriaException e, boolean needRetry) {
if (isBreak()) {
return;
}

View File

@@ -29,8 +29,8 @@ import com.arialyy.aria.core.loader.ILoaderVisitor;
import com.arialyy.aria.core.manager.ThreadTaskManager;
import com.arialyy.aria.core.processor.ITsMergeHandler;
import com.arialyy.aria.core.task.ThreadTask;
import com.arialyy.aria.exception.BaseException;
import com.arialyy.aria.exception.TaskException;
import com.arialyy.aria.exception.AriaM3U8Exception;
import com.arialyy.aria.exception.AriaException;
import com.arialyy.aria.m3u8.BaseM3U8Loader;
import com.arialyy.aria.m3u8.M3U8Listener;
import com.arialyy.aria.m3u8.M3U8TaskOption;
@@ -113,7 +113,7 @@ public final class VodStateManager implements IThreadStateManager {
ALog.d(TAG, String.format("vod任务【%s】失败", loader.getTempFile().getName()));
Bundle b = msg.getData();
listener.onFail(b.getBoolean(DATA_RETRY, true),
(BaseException) b.getSerializable(DATA_ERROR_INFO));
(AriaException) b.getSerializable(DATA_ERROR_INFO));
quitLooper();
}
break;
@@ -148,7 +148,7 @@ public final class VodStateManager implements IThreadStateManager {
if (loader.generateIndexFile(false)) {
listener.onComplete();
} else {
listener.onFail(false, new TaskException(TAG, "创建索引文件失败"));
listener.onFail(false, new AriaM3U8Exception(TAG, "创建索引文件失败"));
}
} else if (m3U8Option.isMergeFile()) {
if (mergeFile()) {