这是一个我在 C# 中无法弄清楚的奇怪场景:
try
{
Call to database.
If results from database are empty
throw new Exception("No results");
}
catch(Exception ex)
{
if (ex.Message.Equals("No results"))
throw;
else
throw new Exception("Exception from database");
}
正确的输出应该是:Exception ("No results")
然而,目前,它不断抛出 2 个异常,即Exception("No results")
和Exception("Exception from database")
.
更新:我尝试将'ex'作为内部异常抛出,因此' throw new Exception("Exception from database", ex)
'。原来 ex 实际上是 ' Exception("No results")
。
谁能向我解释为什么会这样?
谢谢!
PS:稍微调整了上面的内容。希望现在更清楚。它的“抛出”不是“返回”。对错误使用术语表示歉意。