C# 最好检查null并避免null Ref异常,或者简单地捕获null Ref异常

C# 最好检查null并避免null Ref异常,或者简单地捕获null Ref异常,c#,exception,reference,null,C#,Exception,Reference,Null,我相信我知道这个问题的答案,但我想听听社区的意见,以便进行详尽的辩论。此外,我相信这个问题与我所看到的密切相关的其他问题之间存在着微妙的区别: 基本问题:在访问对象或成员并处理结果之前检查其是否为null更好,还是只允许抛出NullReference异常并捕获它更好 允许生成空引用异常是否存在安全风险 有没有令人信服的理由选择一种风格而不是另一种 是否曾经有过这样一种情况,我们会故意选择不检查null,而只允许生成null Ref异常?(如果对象是db参数集怎么办?) 下面是一些示例代码来说明。

我相信我知道这个问题的答案,但我想听听社区的意见,以便进行详尽的辩论。此外,我相信这个问题与我所看到的密切相关的其他问题之间存在着微妙的区别:

基本问题:在访问对象或成员并处理结果之前检查其是否为null更好,还是只允许抛出NullReference异常并捕获它更好

允许生成空引用异常是否存在安全风险

有没有令人信服的理由选择一种风格而不是另一种

是否曾经有过这样一种情况,我们会故意选择不检查null,而只允许生成null Ref异常?(如果对象是db参数集怎么办?)

下面是一些示例代码来说明。MethodA()和MethodB()哪个更好/更安全


这是什么语言?是c。很抱歉没有具体说明。
public string MethodA()
{
    ...
    try
    {
        ...
        ret = MyObject.Value?.ToString();
    }
    catch (Exception ex) { ex.HandleException(); }
    return ret;  // Caller has no discretion in handling empty string
}

public string MethodB()
{
    ...
    try
    {
        ...
        ret = MyObject.Value?.ToString();
        if (ret == null) ret = String.Empty;
    }
    catch (Exception ex) { ex.HandleException(); }
    return ret;  // Allow caller to manage case of empty string.
}