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