Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.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# 在setter中引发异常_C#_.net_Oop - Fatal编程技术网

C# 在setter中引发异常

C# 在setter中引发异常,c#,.net,oop,C#,.net,Oop,我有一个具有属性的类。在这个属性中,我试图验证datatable是否为null。如果为null,则生成异常 例如,如果我想在label控件中显示错误消息,我的问题是如何在调用类中捕获它 这里是酒店: public DataTable DtNotes { get { return _dtNotes; } set { _dtNotes = value;

我有一个具有属性的类。在这个属性中,我试图验证datatable是否为null。如果为null,则生成异常

例如,如果我想在label控件中显示错误消息,我的问题是如何在调用类中捕获它

这里是酒店:

    public DataTable DtNotes
    {
        get
        {
            return _dtNotes;
        }
        set
        {
            _dtNotes = value;
            if (_dtNotes != null)
            {
                _dtNotes.Columns.Remove("id");
                _dtNotes.DefaultView.Sort = "note_type ASC";
                _dtNotes.AcceptChanges();
            }
            else
            {
                throw new ArgumentOutOfRangeException("value", "Null Datable");
            }
        }
    }

我正在asp.net应用程序中使用它。

在调用类中使用
try catch
块,并在catch块中显示消息:

try
{
    // use DtNotes here, throws an ex.
}
catch (ArgumentOutOfRangeException ex)
{
    // display message here.
}

在调用类中使用
try catch
块,并在catch块中显示消息:

try
{
    // use DtNotes here, throws an ex.
}
catch (ArgumentOutOfRangeException ex)
{
    // display message here.
}

旁白:注意
类ArgumentNullException
的存在,我希望您正在重新引用捕获的任何
ArgumentOutOfRangeException
异常…@MatthewWatson——他为什么要这样做?他唯一的要求是在异常发生时显示一条消息。在这里,重新抛出似乎不是一个理想的结果。通常情况下,您不应该向UI传递异常消息,因为它可能会暴露内部应用程序信息和可能的漏洞。如果您打算使用异常作为向用户传递错误的工具,请考虑为此目的在应用程序中创建一个自定义异常类型。.旁白:注意
类ArgumentNullException
的存在,我希望您正在重新引用您捕获的任何
ArgumentOutOfRangeException
异常…@MatthewWatson--他为什么要这样做?他唯一的要求是在异常发生时显示一条消息。在这里,重新抛出似乎不是一个理想的结果。通常情况下,您不应该向UI传递异常消息,因为它可能会暴露内部应用程序信息和可能的漏洞。如果您将使用异常作为将错误传递给用户的方法,请考虑为此目的在应用程序中创建自定义异常类型。还可以考虑如果您在“代码> > DATABATE < /代码>中发生了什么,则没有一个名为“ID”的列。