【发布时间】:2021-05-14 16:51:29
【问题描述】:
在 C# .Net 中编程时,是否有任何函数抛出异常几乎总是一个“坏主意”?
在 C++ 中,从析构函数中抛出异常并不是一个好主意,因为它通常会导致程序终止。 C# .Net 中是否有类似的情况?我对异常被认为是不好的风格的情况不感兴趣。我正在寻找抛出异常通常会导致严重问题的地方。
【问题讨论】:
-
这只是一个政策。我在一个规则是总是扔它的地方工作。
-
感谢您的链接。真的很有帮助!
-
这在 C++ 中是完全不同的考验,std::terminate() 不会让任何人猜到程序为何终止。 C# 没有这个问题,您可以(几乎)始终获得良好的堆栈跟踪。 (几乎)条款为本网站提供了它的名称。唯一需要担心的是程序实际上试图捕获异常。不要从运行在 finally 块中的代码抛出,它会替换活动异常。