gpt4 book ai didi

java - 如何在 Spring Boot 中抛出外部端点抛出的相同异常

转载 作者:行者123 更新时间:2023-12-02 10:27:13 25 4
gpt4 key购买 nike

我正在访问外部 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

所以基本上我想抛出上面相同的错误,但我也想抛出一个ImageNotReadException (java.lang. lang.IllegalArgumentException: image == null! ),以防程序无法读取图像 (byte[])。所以基本上,我的方法 private byte[]retrieveImage(String uri) 必须抛出读取图像异常和端点响应异常。

有什么建议吗?感谢您的帮助!

最佳答案

正如我所评论的,请参阅下面的选项

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;
}

关于java - 如何在 Spring Boot 中抛出外部端点抛出的相同异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53862094/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com