我使用的是 .txt 文件而不是 excel 文件,所以我应该收到 400 错误,但我收到了 500 错误。我想捕获异常并发送带有适当响应正文的 400 响应代码。
[Route("file/")]
[AuthorizeFunction(AuthFunctions.Schema.Create)]
[HttpPost]
[ResponseType(typeof(Schema))]
public async Task<IActionResult> Create([FromBody] Guid fileId)
{
var result = await _SchemaService.Create(fileId);
return Created("GetSchema", new { id = result.Id }, result);
}
最佳答案
您可以使用此代码来捕获特定错误
[Route("file/")]
[AuthorizeFunction(AuthFunctions.Schema.Create)]
[HttpPost]
[ResponseType(typeof(Schema))]
public async Task<IActionResult> Create([FromBody] Guid fileId)
{
try {
var result = await _SchemaService.Create(fileId);
return Created("GetSchema", new { id = result.Id }, result);
}
catch (Exception exc){
if (exc.GetType().FullName == "Your_Exception_Name")
{
// Check your exception name here
}
}
}
或
catch(Exception ex)
{
if(ex.InnerException is ExceptionInstance)// exception instance type you want to check
{
}
}
更新
您可以只使用 catch(Exception ex)
处理一般异常,然后返回 BadRequest()
catch(Exception ex)
{
return BadRequest();
}
关于c# - 如何处理 asp.net core 中的异常 "Invalid file signature"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57772905/