gpt4 book ai didi

java - 如何在 Angular 应用程序上显示来自 springboot 的异常消息

转载 作者:行者123 更新时间:2023-12-01 17:23:05 26 4
gpt4 key购买 nike

我正在研究 Spring Boot + Angular 集成,我想知道如何在我的 Angular 应用程序中显示异常消息。我在 Spring Boot 中创建了异常处理程序类,如下所示:

@ControllerAdvice
public class ExceptionController {

@ExceptionHandler(value={CommonException.class})
public ResponseEntity<Object> noResult(CommonException e){
HttpStatus status=HttpStatus.BAD_REQUEST;
return new ResponseEntity<Object>(new CustomExceptionPayload(e.getMessage(),"400"), status);
}
}

在 Angular 方面,我使用 httpclient 通过服务类发送请求,如下所示:

public generatFile(file:any,to:string,from:string,proj_name:string,count:string,env:string,event:string){
console.log("in service");
const formData=new FormData();
formData.append('file',file);
formData.append('to',to);
formData.append('from',from);
formData.append('proj_name',proj_name);
formData.append('event',event);
formData.append('env',env);
formData.append('count',count);

return this.http.post(this.baseUrl+'/events',formData,{
observe: 'response',
responseType: 'blob' as 'json'
}
);
}

在我的主要组件中接收如下响应:

this.service.generatFile(this.file,new Date(this.to).toLocaleDateString(),new Date(this.from).toLocaleDateString(),this.proj_name,this.count,this.env,this.event).subscribe((resp: any) => {
const blob = new Blob([resp.body], { type: resp.headers.get('Content-Type') });
saveAs(blob, this.fileName);
this.loading=false;
},((error:any) =>{
this.message=error.message;
this.loading=false;
}

我在 Angular 中使用 error.message 来获取上面给出的错误消息,但它不起作用。

当我使用 postman 时,我得到以下响应:

{
"message": "number of events per file is greater than number of failed events",
"status": "400"
}

我不知道如何在 Angular 中获得与我从 Spring Boot 发送的相同的错误消息。如果有人可以用代码提供答案,我将不胜感激。

最佳答案

您可以使用可观察的错误对象。

this.service.generatFile().subscribe(
(res) => {
// handle response
}, (err) => {
// handle errors
});

关于java - 如何在 Angular 应用程序上显示来自 springboot 的异常消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61255340/

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