【发布时间】:2012-07-25 21:11:35
【问题描述】:
除了记录之外,还有什么是处理异常?我问人们说只捕获你可以处理的异常。
例如,我编写了一个与 Active Directory 交互的工具。我在域控制器上运行它。由于我对 AD 有深入的了解,因此我可以处理其他例外情况(例如,我可以提出要求另一个域名的提示)并从那里开始。但是,如果生产服务器上的域出现问题如此严重,这不是例外吗?
所以在这种情况下,环境问题应该是异常的(假设是生产和 AD 等),但这是我可以处理的。我认为处理异常取决于节目观众(同意)?
无论如何,主要问题:要推断我是否可以“处理”异常,我需要知道处理需要什么 - 除了记录并向用户提供另一种选择(在这种情况下,我通过使用 if file exists 来避免异常等)。
对于上述情况(AD),我的代码结构如下:
if (adIsAvailable)
// do whatever here
else
raise exception and ask for action
然后在 gui 中捕获它
对该设计的有效性有什么想法吗?
【问题讨论】:
-
如果
!adIsAvailable意味着它甚至无法找到域服务器,我会称之为异常情况。如果它找不到您正在寻找的搜索片段,我不会称之为例外。
标签: c# exception exception-handling