gpt4 book ai didi

c# - 在 try catch block 中抛出异常

转载 作者:可可西里 更新时间:2023-11-01 03:05:35 28 4
gpt4 key购买 nike

try { 
if (isFileDownloaded)
// do stuff
else
throw new CustomException()
}
catch (Exception e)
{
// something went wrong to save the error to log
}
finally
{
//release resources
}

我的问题是 catch 会捕获 try block 中抛出的 ApplicationException 吗?是编码风格不好吗?

是不是应该换一种写法?

最佳答案

catch 将捕获您的异常(以及任何其他发生的异常)。话虽如此,我尽量避免编写这样的代码。

就我个人而言,我认为没有理由对同一范围内抛出的异常进行异常处理(捕获)。如果您可以在您的方法中处理错误 - 将异常处理(即:日志记录)也直接放在 try block 中。

使用 catch 更有用,IMO,用于捕获 try block 中的方法抛出的异常。这会更有用,例如,如果您的 //do stuff 部分碰巧调用了引发异常的方法。

此外,我建议不要捕获所有异常 (Exception e),而是捕获您可以正确处理的特定类型的异常。一个异常(exception)是如果您在 catch 中重新抛出异常 - 即:将它用于日志记录目的但仍然让它在调用堆栈中冒泡。

关于c# - 在 try catch block 中抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3293652/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com