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 not working

你所做的问题是,在你的代码中,你只捕获ArgumentException s,而在你捕获所有异常之前,所有异常都来自Exception,所以它符合旧的catch标准。

如果您只想捕获特定的异常(NullReference),那么您需要捕获正确的异常(而不是ArgumentException)。修改如下:

catch (NullReferenceException)
{
    InstanceID = nodata;  
}

但是如果你没有NullReferenceException的特定行为,那么我就保留它:

catch (Exception)
{
    InstanceID = nodata;
}

阅读MSDN以更好地理解捕获特定类型的异常