.NET WebAPI 正确抛出错误详细信息

最近把之前的WebAPI项目发布到服务器上,数据库由SQL Server2008 EXPRESS改为SQL
Server2000,但在分页查询时服务器抛出了“500错误”,但却看不到错误的详细信息,按照之前的经验把配置文件的customErrors打开依然看不到详细信息,由于项目是发布在服务器上,没有办法进行调试,且服务器是windows20003,页没有办法进行远程调试,写try…catch…捕捉action中的错误并抛出依然获取不到详细信息,得不到错误详细信息就没有方向对错误进行修改,然后就在网上搜索解决办法,发现WebAPI出现错误,只会抛出500,并不包含详细信息,只有抛出HttpResponseException,才能得到错误的详细信息,这样就好办了,代码如下:


try
{
...
}
catch (Exception e) {
//在webapi中要想抛出异常必须这样抛出,否则之抛出一个默认500的异常
var resp = new HttpResponseMessage(HttpStatusCode.InternalServerError)
{
Content = new StringContent(e.ToString()),
ReasonPhrase = "error"
};
throw new HttpResponseException(resp);
}

最后根据错误详细信息发现是新版NHibernate不支持SQL Server2000的分页查询了,又装了一个SQL Server2005错误解决。

就在写这篇记录的时候刚想到其实用不着这么麻烦,可以直接把Exception的详细内容输出的,又走弯路了…

.NET WebAPI 正确抛出错误详细信息,布布扣,bubuko.com

时间: 2024-08-07 17:02:35

.NET WebAPI 正确抛出错误详细信息的相关文章

node.js抛出错误问题

很多node.js程序员都习惯使用: throw "error"抛出错误 或者在回调函数中 callback('error') 这些代码咋node.js中都能正常运行,但是从代码规范性来说,这就是相当不规范的代码了. 1.无法同构error.stack获取错误的堆栈信息 2.抛出的并不是一个Error对象 正确的方式是每次抛出错误或者毁掉中返回错误的时候,都使用 new Error('error')来构造一个错误对象,这样在后续的错误中,能轻松的获得错误的堆栈信息,定位错误.

《从零开始学Swift》学习笔记(Day54)——抛出错误

原创文章,欢迎转载.转载请注明:关东升的博客 能放到try后面调用函数或方法都是有要求的,他们是有可能抛出错误,在这些函数或方法声明的参数后面要加上throws关键字,表示这个函数或方法可以抛出错误. 声明抛出错误方法示例代码如下: //删除Note记录方法 func remove(model: Note) throws { ... } //查询所有记录数据方法 func findAll() throws -> [Note] { ... } 上述代码remove(_:)方法没有返回值,throw

抛出错误

因为错误也是一个类,捕获一个错误就是捕获到该类的一个实例 因此,错误并不是凭空产生的,而是有意创建并抛出的 Python的内置函数会抛出很多类型的错误,自定义函数也可抛出错误 自定义错误 如果要抛出错误,首先根据需要,可以定义一个错误类,选择好继承关系,然后,用raise语句抛出一个错误的实例 必要时可自定义错误类型,但尽量使用Python内置的错误类型 class FooError(ValueError): #继承Python内置错误类型ValueError pass def foo(s):

nodejs出现events.js:72中抛出错误

作为初学者,我在使用nodejs的过程中遇到了如下的运行错误: events.js:72 throw er; // Unhandled 'error' event ^ Error: listen EADDRINUSE at errnoException (net.js:901:11) at Server._listen2 (net.js:1039:14) at listen (net.js:1061:10) at Server.listen (net.js:1127:5) at Object.<

python模范发送邮件的时候,才smtp.connect的时候总是抛出错误

python发送邮件的时候,总是出现:[Errno 10060] 错误码 根据debug得到在connect的时候出错. 认真检查了下host,没有错呀~应该就是服务器的host. 查看了下网上的一些例子,发现qq的host举例:smtp.qq.com/smtp.163.com/smtp.162.com 于是觉得应该用smtp.+XXX.com来试一下~就可以解决了~ python模范发送邮件的时候,才smtp.connect的时候总是抛出错误,布布扣,bubuko.com

Atitit.dwr3 不能显示错误详细信息的解决方案,控件显示错误详细信息的解决方案 java .net php

Atitit.dwr3 不能显示错误详细信息的解决方案,控件显示错误详细信息的解决方案 java .net php 1. Keyword/subtitle 1 2. 使用dwr3的异常convert处理不能解除,,,按照盗垒能解除了.... 1 3. 使用js 回回调功能处理...还是不能,子能显示个..javaClassName:"java.lang.Throwable",message:"Error"} 2 4. 异常转换器 2 5. 当然如果想要只针对某一个f

Lua 自己实现排序sort比较方法,抛出错误invalid order function for sorting

明天新功能就要上了,结果刚刚突然QA说项目抛出了错误.握草,吓得立马出了一身汗. 查了一下错误,发现可能是自己写的不稳定排序造成的.自己感觉应该就是.把排序方法写成稳定的之后,代码分离编译进手机,跑了一下木有错误了.脑残的自己为何要对服务器传过来的有序数据进行排序呢?脑抽不明. 下文为转的别人总结的lua库.(该学习的地方还太多) lua的table库 函数列表: table.insert(table,[ pos,] value) table.remove(table[, pos]) table

使用 Throw 抛出错误消息

Throw 命令没有Exception severity 参数,The exception severity is always set to 16. Raises an exception and transfers execution to a CATCH block of a TRY…CATCH construct in SQL Server 2012. THROW [ { error_number | @local_variable }, { message | @local_varia

nodejs显现events.js:72抛出错误

随着人们开始学习,我用nodejs过程中遇到如下列错误执行: events.js:72 throw er; // Unhandled 'error' event ^ Error: listen EADDRINUSE at errnoException (net.js:901:11) at Server._listen2 (net.js:1039:14) at listen (net.js:1061:10) at Server.listen (net.js:1127:5) at Object.<a