gpt4 book ai didi

language-agnostic - 如何处理异常

转载 作者:行者123 更新时间:2023-12-01 22:29:47 25 4
gpt4 key购买 nike

我的技术领导坚持这种异常机制:

try
{
DoSth();
}
catch (OurException)
{
throw;
}
catch (Exception ex)
{
Util.Log(ex.Message, "1242"); // 1242 is unique to this catch block
throw new OurException(ex);
}

这里的1242是我们处理OurException以外的异常的catch方法的标识。项目中的每个catch block 都必须有一个唯一的标识符,这样我们就可以通过查看日志知道异常发生在哪里。

对于每个方法,我们都必须捕获 OurException 并抛出它。如果抛出其他类型的异常,我们必须记录它并在重新抛出之前用 OurException 屏蔽它。

这是一个合理的方法吗?如果有的话,更好的选择是什么?

编辑:我被告知堆栈跟踪在 Release模式下不会产生有意义的结果。您是否建议捕获并抛出一般异常?

Edit2: 谢谢大家。我用你的回答作为我反对这一论点的一部分,但我被告知你经验不足,不知道如何处理现实生活中的情况。我必须走这条路。

最佳答案

您还可以查看 Exception Handling Application block.

我在几个项目中使用过它,非常有用。特别是如果您想稍后更改异常处理的工作方式以及要捕获的信息。

关于language-agnostic - 如何处理异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/389575/

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