Friendly prompt if response code is not OK

This commit is contained in:
huanghongxun
2019-04-03 14:05:14 +08:00
parent 8c7580488e
commit b198eea9e4
7 changed files with 63 additions and 5 deletions

View File

@@ -21,10 +21,7 @@ import org.jackhuang.hmcl.event.EventManager;
import org.jackhuang.hmcl.event.FailedEvent;
import org.jackhuang.hmcl.util.CacheRepository;
import org.jackhuang.hmcl.util.Logging;
import org.jackhuang.hmcl.util.io.ChecksumMismatchException;
import org.jackhuang.hmcl.util.io.FileUtils;
import org.jackhuang.hmcl.util.io.IOUtils;
import org.jackhuang.hmcl.util.io.NetworkUtils;
import org.jackhuang.hmcl.util.io.*;
import java.io.File;
import java.io.IOException;
@@ -233,7 +230,7 @@ public class FileDownloadTask extends Task {
repository.removeRemoteEntry(con);
}
} else if (con.getResponseCode() / 100 != 2) {
throw new IOException("Server error, response code: " + con.getResponseCode());
throw new ResponseCodeException(currentURL, con.getResponseCode());
}
int contentLength = con.getContentLength();

View File

@@ -0,0 +1,41 @@
/*
* Hello Minecraft! Launcher
* Copyright (C) 2019 huangyuhui <huanghongxun2008@126.com> and contributors
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package org.jackhuang.hmcl.util.io;
import java.io.IOException;
import java.net.URL;
public class ResponseCodeException extends IOException {
private final URL url;
private final int responseCode;
public ResponseCodeException(URL url, int responseCode) {
super("Unable to request url " + url + ", response code: " + responseCode);
this.url = url;
this.responseCode = responseCode;
}
public URL getUrl() {
return url;
}
public int getResponseCode() {
return responseCode;
}
}