5.9K Star 11.7K Fork 4K

GVPdotNET China / Furion

 / 详情

规范化接口文档,IUnifyResultProvider,如果抛出异常不会进入OnException方法,导致请求日志记录到的返回结果为请求成功!

已完成
创建于  
2021-10-14 11:31

💢 特别说明:如果 Issue 没有严格按照模板编写且未提供测试源码下载或 Git 测试仓库地址,则视为无效 Issue

Furion 版本号

2.19.1


Web 项目类型

  • [√] WebApi
  • Mvc
  • Razor Pages
  • Blazor Server
  • MinApp

描述你的问题

代码里面抛出异常,不管是原生的还是用Furion自带的Oops抛出异常,都不会进入OnException(RESTful风格,IUnifyResultProvider)中,而是会进入OnSucceeded(成功),具体断点如下:
输入图片说明
可以看到结果中是存在异常信息的:“测试原生”
输入图片说明
然后会进入请求日志拦截中间件,但是现在获取到的返回结果正是之前RESTful风格中的请求成功结果,具体如图:
输入图片说明
然后会进入全局异常处理中间件,可以明确的看到是报错的。
输入图片说明
最后才会进入OnException,这一步不是很理解。为什么先进请求成功,然后走完中间件,才进的异常这边。
输入图片说明
最后正常返回错误信息。
输入图片说明


异常堆栈信息


测试项目代码

⚠⚠ 必须提供完整可运行且包含错误的 Git 仓库 DEMO,DEMO 提供最简单的错误逻辑代码,否则不予处理。⚠⚠

您的代码下载地址?

https://gitee.com/zhengguojing/admin-net-sqlsugar.git
由于涉及到中间件和其他的处理方式,所以,直接用现成的框架,测试代码,已经提交,接口为Auth中的Login接口,直接F5运行Swagger,然后调试Auth中的Login接口。就会重现以上的步骤。

数据库信息

  • [√] Sqlite
  • SqlServer
  • Mysql
  • Oracle
  • PGSql
  • Firebird
  • Cosmos

期待结果

希望抛出异常后直接进入RESTful中的异常处理返回结果方法,然后让请求日志正常记录异常的返回结果。(现在如果抛出异常都记录的是请求成功的返回结果)然后正常记录异常日志。返回前端。


关注 Furion

如果您喜欢或正使用 Furion,Furion 也能帮助到您,可以考虑给 Furion 一个 Star。✨


评论 (8)

小方 创建了任务
小方 关联仓库设置为dotNET China/Furion
展开全部操作日志

好的,我测试一下,确认问题提交修复,这几天也会发布新版本,把这些没有关闭的issue一一fixed掉。

我去,你这个速度,好的,尽快哈,大佬。我怕等下他们更新代码,导致报错了。 :joy: 麻烦了!!!

这个问题确定了没!

:disappointed_relieved: 这个问题还没搞定嘛?

百小僧 通过 dotnetchina/Furion Commit f07016c任务状态待办的 修改为已完成
百小僧 负责人设置为百小僧
百小僧 添加了
 
漏洞
标签
百小僧 里程碑设置为Furion 2021
百小僧 关联分支设置为net6
百小僧 计划截止日期设置为2021-11-19
百小僧 计划开始日期设置为2021-11-19

v2.25.6 和 v3.0.5 修正

百小僧 关联分支net6 修改为未关联

怎么取消某个api 返回 规范化结果 有没有啥属性

[NonUnify] ,可以认真看看文档,或者使用文档搜索功能......

登录 后才可以发表评论

状态
负责人
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
参与者(3)
974299 monksoul 1578937227 5128606 dotnet learncode 1628664386
C#
1
https://gitee.com/dotnetchina/Furion.git
git@gitee.com:dotnetchina/Furion.git
dotnetchina
Furion
Furion

搜索帮助