這裏是我不能在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)
'。原來,實際上是'Exception("No results")
。
任何人都可以向我解釋爲什麼會發生這種情況嗎?
謝謝!
PS:調整了上面的一點。現在希望它更清楚。它的「拋出」不是「返回」。道歉錯誤地使用條款。
什麼是'ex.Message'? –
你的問題沒有意義。異常不會返回,並且在同一個線程上不能同時拋出2。 – leppie
「返回」不能有2個例外。請給出一個更好的描述。在你觀察到的地方張貼周圍的漁獲物。 –