我可以删除try-catch的from catch块吗?

本文关键字:catch 块吗 from 删除 try-catch 我可以 | 更新日期: 2023-09-27 18:14:41

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

当我构建项目时,有一个警告说:变量'e'被声明但从未使用过。这是因为e不是必需的吗?

我可以删除try-catch的from catch块吗?

是。你可以直接写

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      
}