Пропагандировать ошибки в пользовательском интерфейсе с помощью Spring 3 MVC/REST

Вопрос:

Когда пользователь получает /api/upload конечную точку REST, у меня есть UploadController, который использует службу UploadService для загрузки файла на ftp-сервер с org.apache.commons.net.ftp.FTPClient. Я хотел бы иметь возможность отправить информацию пользователю, если FTP-клиент не смог подключиться или не был установлен или успешно отправил файл. У меня есть обработка IOException, но я не знаю, как это сделать и отправить обратно в интерфейс. Любая помощь оценили, спасибо!

public void upload(InputStream inputStream) {
String filename = "file.txt"

client = new FTPClient();
try {
client.connect("ftpsite");
client.login("username", "password");
client.storeFile(filename, inputStream);
} catch (IOException ioe) {

ioe.printStackTrace();
} finally {
try {

if (inputStream!= null) {
inputStream.close();
}

} catch (IOException ioe) {
ioe.printStackTrace();
}
}
return null;
}

Лучший ответ:

Вы должны выбросить новое исключение в свою инструкцию catch.

Например, вы можете создать класс RequestTimeoutException:

@ResponseStatus(HttpStatus.REQUEST_TIMEOUT)
public class RequestTimeoutException extends RuntimeException { }

а затем бросить его, когда нужно:

catch (IOException ioe) {

    //do some logging while you're at it
    throw new RequestTimeoutException();
} 

Оцените статью
TechArks.Ru
Добавить комментарий