我最近一直在使用Web Api,并且我有一些使用经典异常抛出方法发送(例如)错误请求的方法:
throw new HttpResponseException(HttpStatusCode.BadRequest);
在将其中几个更改为IHttpActionResult之后,我首先注意到其中许多运行速度更快:
return (IHttpActionResult) BadRequest("Not found");
一开始我认为这只是一个不可衡量的差异,但我决定使用两个代码重复几次相同的方法只是改变发送错误请求的方式并将其与Postman计时。 令我惊讶的是,我可以清楚地看到,返回一个动作结果总是花费至少30%的时间。
我的问题;两种方法之间的区别是真的还是我错过了什么?从理论上讲,两者之间没有任何区别,当然除了被捕获异常和渲染之外。我无法想象,当我比较平均110毫秒的请求时,捕获异常并创建一个对象可能需要30%的时间。