在C#中引发异常的最佳方式是什么?

57

传统上,我部署了一组网页,允许手动验证核心应用程序功能。其中一个例子是LoggerTest.aspx,它生成并记录一个测试异常。我一直选择使用类似以下代码片段的方法引发DivideByZeroException:

<%@ Page Language="C#" %>
        
<%@ Import Namespace="System" %>
        
<script runat="server">
    void Page_Load(object sender, EventArgs e)
    {
        try
        {
            int x = 0;
            int y = 1 / x;
        }
        catch (DivideByZeroException ex)
        {
            // Log the exception.
        }
    }
</script>
try
{
   int zero = 0;
   int result = 100 / zero;
}
catch (DivideByZeroException ex)
{
   LogHelper.Error("TEST EXCEPTION", ex);
}

代码可以正常工作,但我觉得必须有更优雅的解决方案。在C#中引发异常是否有最佳方法?


感谢您的反馈。我已将GalacticCowboy的答案标记为正确答案,因为根据问题的措辞,它显然是正确的答案。再次感谢您的反馈,如果问题不够清晰,很抱歉。 - Ben Griswold
对于那些认为“这个问题肯定还有更多”的人,你是对的。本质上,我正在寻找一种最佳方法来引发/导致/模拟异常。正如James Curran所说,我追求的是异常的发生而不是异常的抛出。强制引发DivideByZeroException是我的默认策略,但我认为可能还有其他方法或者甚至是更好的异常可以引发。很可能抛出和“引发”异常之间没有区别。至少大多数答案似乎都持有这种观点。 - Ben Griswold
12个回答

0

为了测试目的,您可能想创建一个特定的类(例如TestFailedException),并抛出它,而不是劫持另一种异常类型。


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接