簡體   English   中英

我可以從try-catch的catch塊中刪除e嗎?

[英]Can I delete the e from catch block of try-catch?

catch (HttpAntiForgeryException e)
{
    throw new HttpAntiForgeryException("Forgery Exception");
}

當我構建項目時,有一條警告說:聲明了變量'e',但從未使用過。 那是因為e不必要嗎?

是。 你可以簡單地寫

catch (HttpAntiForgeryException)
{
    throw new HttpAntiForgeryException("Forgery Exception");
}

但是,您要拋出相同類型的異常。 您也可以簡單地刪除此catch塊。

如果您不想執行任何例外處理,則沒有必要,在這種情況下,您將拋出自定義消息,因此可以像這樣使用它:

catch 
{
   throw new HttpAntiForgeryException("Forgery Exception");
}

或像這樣:

// For specific exception
catch (HttpAntiForgeryException)
{
       throw new HttpAntiForgeryException("Forgery Exception");
}

但是您不會獲得有關此異常的任何信息,例如錯誤消息,堆棧跟蹤,內部異常等。我更希望您在Catch中處理該異常,或者適當地記錄它們以供開發人員參考

這是因為您沒有在catch塊的任何位置使用變量e。 您可以輕松捕獲該異常,因此與引發新異常相比,您將更好地了解異常的根本原因。

catch (HttpAntiForgeryException e)
{
    Console.WriteLine(e.Message); // Console.Writeline or whichever way you want      
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM