我最近刚刚开始考虑例外情况及其使用的最佳做法,我不知道什么是这样做的正确方法:在方法抛出异常的说法重载
假设有多个参数的方法。这个方法有多个重载参数,通过提供默认值来调用主实现。
我是否验证每个超载中的所有参数?
public string Translate(string text)
{
if (String.IsNullOrEmpty(text))
throw new ArgumentNullException();
return Translate(text, "english");
}
public string Translate(string text, string language)
{
if (String.IsNullOrEmpty(text))
throw new ArgumentNullException();
// Do the rest of the work
// ...
}
难道我重新抛出异常?
public string Translate(string text)
{
try
{
return Translate(text, "english");
}
catch
{
throw;
}
}
public string Translate(string text, string language)
{
if (String.IsNullOrEmpty(text))
throw new ArgumentNullException();
// Do the rest of the work
// ...
}
还是我完全处于超负荷下降例外和try/catch块?
public string Translate(string text)
{
return Translate(text, "english");
}
public string Translate(string text, string language)
{
if (String.IsNullOrEmpty(text))
throw new ArgumentNullException();
// Do the rest of the work
// ...
}
此外,这两种方法的文档会怎么样子的呢?
(使用C#XML注释。特别是当我把<exception>
元素。)
我也知道这是一个小的话题,不过,我一直在想,每次我遇到这种情况(这实际上经常是)。
可选参数以某种方式解决这个问题,只有一种方法: public string Translate(string text,string language =“english”) –
哦,哇,我已经用C#编程了一年多了,而且我真的有不知道这是可能的。 – Lucius
我写它作为答案,那么现在有点累了,并不真正知道它是否是你的问题的答案。 –