Как бросить то же самое исключение, выброшенное внешней конечной точкой в ​​Springboot - PullRequest
0 голосов
/ 20 декабря 2018

Я получаю доступ к внешнему API и ожидаю получить изображение в ответ (byte[]).Мой метод, который подключается к этой конечной точке, выглядит следующим образом:

 private byte[] retrieveImage(String uri) {
     byte[] imageBytes = null;
     try {
            URL url = new URL(uri);
            BufferedImage bufferedImage = ImageIO.read(url);
            ByteArrayOutputStream baos = new ByteArrayOutputStream();
            ImageIO.write(image, "png", baos);
            imageBytes = baos.toByteArray();
        } catch (Exception ex) {
            throw new ImageNotReadException(ex.getLocalizedMessage());
        }
        return imageBytes;
    }

Оказалось, что если я передаю неверные параметры целевой конечной точке, я получаю это сообщение об ошибке: enter image description here

Так что в основном я хотел бы throw ту же ошибку выше, но я также хотел бы throw ImageNotReadException (java.lang.IllegalArgumentException: image == null!) в случае, если программа не может прочитать изображение (byte[]),Таким образом, мой метод private byte[] retrieveImage(String uri) должен был бы выдать исключение моего считываемого изображения и исключение ответа конечной точки.

Есть какие-нибудь советы?Ценю помощь!

1 Ответ

0 голосов
/ 20 декабря 2018

Как я прокомментировал, см. Ниже варианты

private Response retrieveImage(String uri) {
     byte[] imageBytes = null;
Response r=new Response();
     try {
            URL url = new URL(uri);
            BufferedImage bufferedImage = ImageIO.read(url);
            ByteArrayOutputStream baos = new ByteArrayOutputStream();
            ImageIO.write(image, "png", baos);
            imageBytes = baos.toByteArray();
            r.setImage(imageBytes);
            r.setStatus(1);
        } catch (Exception ex) {
            r.setStatus(0);
        }
        return r;
    }

Ответ:

class Response{ 
String status;
byte[] image;

//getters setters
}

Или:

  private Response retrieveImage(String uri)throws CustomException {
         byte[] imageBytes = null;
         try {
                URL url = new URL(uri);
                BufferedImage bufferedImage = ImageIO.read(url);
                ByteArrayOutputStream baos = new ByteArrayOutputStream();
                ImageIO.write(image, "png", baos);
                imageBytes = baos.toByteArray();
            } catch (Exception ex) {
                throw new CustomException(ex.getLocalizedMessage());
            }
            return imageBytes;
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...