当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《在C#中引发异常的最佳方法是什么?》经验,为你挑选了3个好方法。

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

try
{
   int zero = 0;
   int result = 100 / zero;
}
catch (DivideByZeroException ex)
{
   LogHelper.Error("TEST EXCEPTION", ex);
}

代码工作正常,但我觉得必须有一个更优雅的解决方案.有没有一种在C#中引发异常的最佳方法?



1> GalacticCowb..:
try
{
  throw new DivideByZeroException();
}
catch (DivideByZeroException ex)
{
  LogHelper.Error("TEST EXCEPTION", ex);
}


这有点危险.当用户明确提出通常由CLR引发的异常时,CLR的行为会有所不同.有关更多详细信息,请参阅此帖子:http://blogs.msdn.com/jaredpar/archive/2008/10/22/when-can-you-catch-a-stackoverflowexception.aspx

2> Jesse Millik..:

简短回答:

throw new Exception("Test Exception");

你会需要

using System;



3> Charles Bret..:

为测试目的构建自定义异常?然后,您可以通过异常处理/日志记录过程添加您希望异常随身携带的任何自定义属性...

 [Serializable]
 public class TestException: ApplicationException
 {
     public TestException(string Message, 
                  Exception innerException): base(Message,innerException) {}
     public TestException(string Message) : base(Message) {}
     public TestException() {}

     #region Serializeable Code
     public TestException(SerializationInfo info, 
           StreamingContext context): base(info, context) { }
     #endregion Serializeable Code
 }

在你的班上

 try
 {  
      throw new TestException();
 }
 catch( TestException eX)
 {  
    LogHelper.Error("TEST EXCEPTION", eX);
 }

推荐阅读
mobiledu2402851373
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有