我发现C#非常令人沮丧的一件事是,当我发现一些问题时,我想抛出一个有意义的异常。我发现很难在intellisense中找到这些例外。没有Exception命名空间,所以我无法通过intellisense列出所有异常,而无需四处寻找异常。
我不想要创建我自己的异常,我只是试图看看是否有任何其他选项,除了谷歌搜索异常以找到它的命名空间,所以我可以使用它。
答案 0 :(得分:6)
在大多数情况下,这是不好的做法。您应该重用的少数异常(InvalidOperation,NullReference,ArgumentException,以及其他一些异常)。但是,你不应该自己抛出SqlException
- 因为你不知道框架可能会对它做什么。
创建自己的异常层次结构会在出错时为您的应用程序增加意义。重用已经理解为含义的异常会导致混淆 - 损失的含义。
答案 1 :(得分:2)
您可以在对象浏览器中浏览整个异常类树。查找System.Exception,然后单击派生类型。不是100%肯定他们是否都在那里,但他们中的大多数肯定是在那里。 System.Exception - >派生类型(也在System.Excecption树的根目录中)
答案 2 :(得分:1)
您可以在MSDN here中找到一些例外情况。
通常,这些是您将要抛出的异常,在许多情况下,您将从这些异常中获得自己的异常。但是,抛出太多不同异常的单一方法通常是不受欢迎的
另外,请回忆<exception>
xml文档标记。使用此标记可以大大提高用户的启发性,即方法抛出的异常以及何时抛出。就清晰度而言,这可能比抛出特定类别的异常更重要。