2010-02-05 49 views
0

我有一个名为“网站”类,而这个类,我有以下属性里面:我应该如何在C#中处理这个特殊的异常?

public HtmlForm RegisterForm 
{ 
    get 
    { 
     if (Forms.RegForm != null)/Forms is a custom object called HTMLForms that is a custom list collection 
     { 
      return Forms.RegForm; 
     } 
     else 
     { 
      // FindPageWithGoogle Google = new FindPageWithGoogle(); 
      // use Google.FindRegistrationForm(this.currentUrl) method 
      //throw new Exception(); // if registration form object can't be found 
     } 
     return Forms.RegForm; 
    } 
} 

这将是处理错误的有效途径?如果没有找到它,如果抛出这个异常,我将如何停止程序的整个流程?我知道如何使用简单的尝试,但我认为这不够。我相信我需要学习如何使自己的自定义异常处理系统相应地处理这些自定义事件。

感谢您的任何帮助。另外,如果您有关于异常处理的特定书籍,由于迄今为止我读过的C#书籍没有深入讨论这个话题,所以不胜感激。

感谢,

科迪

+1

所以你的问题是什么是处理'Forms.RegForm == null'的最佳方式? – 2010-02-05 16:18:09

+0

我会说任何'自定义异常处理系统'仍然会受益于使用try-catch(-finally)块,或许与你自己的自定义异常类而不是避免它们在一起 – 2010-02-05 16:51:55

+0

我不想避免它们。我只想制作安全的代码。你知道,如何编程知道你的用户将要做他们不应该做的事情。 – Codygman 2010-02-05 17:00:55

回答

0

要终止对一个异常的代码,就是不抓住它。

您应该创建一个有意义的异常类(例如InitializationError),然后在出现错误时抛出异常。转到可以将消息显示给用户的调用代码并在那里捕获异常。您也可以在此时终止程序。

就异常处理的书籍而言,我认为你会发现MSDN chapter on exceptions有帮助。