我知道这样做并不好,只要在Exception上加上try catch就可以了,因为这可能导致隐藏问题和其他问题。我应该捕捉异常吗?
但是,我仍然不知道我是否应该这样做在我的情况。
我的网站是沉重的ajax,所以我发回json响应。所以,现在我已经确定了可以提出像一个空引用,SQL数据库等一些可能的例外
因此,在这些的的catch语句我有一个很好的消息给用户类似
发生了数据库错误您 东西尚未保存
但是我想,如果他们是一些其他的例外,我不明白现在发生了什么。如果发生这种情况,我认为表单会挂起,用户不知道发生了什么。
所以会是在这种情况下更好的,我确定 - 如SQL
- 捕获异常,outof范围
- 日志与ELMAH
- 显示漂亮的定制味精每个异常
- 捕获异常后
- 用elmah记录
- 显示一些通用信息
- 回来并添加该例外列表。
的
catch(IndexOutOfRangeException ex)
{
// log here
// customized msg
}
那是我的意图。我不会给他们一些堆栈轨道。因为我登录ELMAH(一个错误记录工具),所以我也没有隐藏每个说的错误消息,所以我会知道它。这只是我在想,如果我没有捕捉到所有的例外,并且我忘记了用户可能会在黑暗中离开。我仍然会知道ELMAH发生了什么事,但用户不会。所以这就是为什么我认为捕获所有例外作为最后手段显示我自己的味精给用户。一旦我看到它看到发生了什么,并可能增加另一个捕获。 – chobo2 2010-06-24 01:13:02
我的意思是可以向用户显示错误信息,但错误不应该给你正在使用的软件提供任何提示,以避免这些细节可以用于附加你的网站。在一些地方,代码应该捕获所有剩下的异常,以允许您控制用户将看到的消息。登录的用户不知道查询“SELECT * FROM drupal.users WHERE name ='xyz'”失败;他们只需要知道服务器端存在错误,他们需要稍后再试。 – kiamlaluno 2010-06-24 01:24:38
那么我的邮件就像是“由于数据库错误而无法保存您的信息”或“由于未知错误而无法保存您的信息”。 – chobo2 2010-06-24 01:30:11