Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我应该如何处理C#中的这个特殊异常?_C#_Exception Handling_Exception_Custom Exceptions - Fatal编程技术网

我应该如何处理C#中的这个特殊异常?

我应该如何处理C#中的这个特殊异常?,c#,exception-handling,exception,custom-exceptions,C#,Exception Handling,Exception,Custom Exceptions,我有一个名为“网站”的类,在该类中我有以下属性: 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

我有一个名为“网站”的类,在该类中我有以下属性:

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#书对这个主题没有太多涉及,我将不胜感激

谢谢


Cody

要在异常时终止代码,请不要捕获它

您应该创建一个有意义的异常类(例如,
初始化错误
),然后在错误发生时抛出该异常类。转到可以向用户显示消息并捕获异常的调用代码。您也可以在该点终止程序


至于关于异常处理的书籍,我想你会发现它们很有用。

那么你的问题是处理
Forms.RegForm==null
?我想说,任何“自定义异常处理系统”都会从使用try-catch(-finally)块中受益,也许是使用您自己的自定义异常类,而不是一起避免它们。我不想避免它们。我只想编写安全的代码。你知道,如何在知道你的用户将要做他们不应该做的事情的情况下编程。Nick,我认为当需要实例化该对象以使程序的其余部分正常工作时,将其作为null处理。我不认为放置获取页面的代码并从属性引发异常是一个好主意。此外,网站对象是否应该自己获取页面?