我知道您应该始终检查方法的传入参数是否为空。但是,如果我有一个 try/catch 引用局部变量的场景怎么办。我真的需要在下面检查 null 吗?因为如果它为 null 并且下一行代码尝试使用 refundResponse 变量,它无论如何都会捕获它:
public string DoRefund(...)
{
try
{
......
string refundTransactionID = string.Empty;
......
RefundTransactionResponseType refundResponse = transaction.DoRefund(...);
if (refundResponse != null)
refundTransactionID = refundResponse.RefundTransactionID;
.....
}
catch (Exception ex)
{
LogError(ex);
return ex.ToString();
}
}
请记住,我是专门讨论局部变量并检查方法内部的变量,而不是方法的传入参数。
我在这里要问的是,我是否需要在设置 refundTransactionID 之前检查是否为 null,或者我只是在没有 if 的情况下设置它,假设编译器将处理并抛出它是否为 null,这将被捕获并作为在这种情况下,调用者的字符串。
或者应该是
if (refundResponse == null)
return null;
或者完全检查这个局部变量赋值,然后因为在这种情况下我有一个 try/catch 我正在处理编译器通过将异常作为字符串返回给调用者自然地拾取的任何异常(发回字符串不是我的决定,这是我老板的要求……所以暂时绕过这个争论):
refundTransactionID = refundResponse.RefundTransactionID;
最终,该方法中的其余代码取决于有效的 refundTransactionID。
最佳答案
异常(exception)情况是特殊情况。如果您可以检查持续错误,请这样做!
关于c# - 是否检查null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2510945/