ArgumentException not working
本文关键字:working not ArgumentException | 更新日期: 2023-09-27 18:03:39
是否有任何原因导致ArgumentException可能无法工作?
当我们将解决方案迁移到。net 4.0时,我们不能正确使用ArgumentException。
string nodata = '--NO DATA--'
try
{
InstanceID = Microsoft.XLANGs.Core.Service.RootService.InstanceId.ToString();
}
catch (ArgumentException)
{
InstanceID = nodata;
}
当我们使用Exception类而不是ArgumentException时,我们可以将变量nodata传递给InstanceID。
catch (Exception e)
{
InstanceID = nodata;
}
我们通常遇到的错误是
对象引用未设置为实例对象。
你所做的问题是,在你的代码中,你只捕获ArgumentException
s,而在你捕获所有异常之前,所有异常都来自Exception
,所以它符合旧的catch
标准。
如果您只想捕获特定的异常(NullReference
),那么您需要捕获正确的异常(而不是ArgumentException
)。修改如下:
catch (NullReferenceException)
{
InstanceID = nodata;
}
但是如果你没有NullReferenceException
的特定行为,那么我就保留它:
catch (Exception)
{
InstanceID = nodata;
}
阅读MSDN以更好地理解捕获特定类型的异常