C# catch块中是否可能存在异常?
catch块中是否存在异常发生的可能性?如果是,那么在这种情况下我如何处理它呢?可以在C# catch块中是否可能存在异常?,c#,exception-handling,try-catch,C#,Exception Handling,Try Catch,catch块中是否存在异常发生的可能性?如果是,那么在这种情况下我如何处理它呢?可以在catch块中抛出异常,但这种情况很少见,或者至少应该是这样。显然,这取决于您在catch块中放置的内容 最好的保护措施是避免在catch语句中出现大量代码,并且只包含不太可能引发另一个异常的“安全”代码 请记住,在代码的“正常”流中,任何事情都不会因为异常而发生,因此在大多数情况下,除了日志记录或其他次要内容之外,catch中不会有任何内容。如果您的catch中有一整块应用程序代码,那么它可能不应该在那里 如
catch
块中抛出异常,但这种情况很少见,或者至少应该是这样。显然,这取决于您在catch
块中放置的内容
最好的保护措施是避免在catch
语句中出现大量代码,并且只包含不太可能引发另一个异常的“安全”代码
请记住,在代码的“正常”流中,任何事情都不会因为异常而发生,因此在大多数情况下,除了日志记录或其他次要内容之外,catch
中不会有任何内容。如果您的catch
中有一整块应用程序代码,那么它可能不应该在那里
如果您必须在catch
中执行某项操作,而该操作可能会引发另一个异常的原因是无法预测的,那么您可以在catch
中放置另一个try/catch
。这种情况确实发生过——并非闻所未闻——但并不常见
如果必须在catch
中调用其他方法,最好知道它是否可能引发异常。熟悉您的日志记录并确保它不会引发另一个异常并没有坏处。或者,如果它是某个.NET Framework方法,文档通常会告诉您它抛出了哪些异常以及原因
作为一个随机示例,请查看字典方法的文档:
例外情况
Exception Condition
ArgumentNullException key is null
然后它告诉你,如果你想知道,如果你试图删除一个不存在的密钥会发生什么
如果字典不包含具有指定键的元素,则字典保持不变。没有抛出异常
熟悉在线文档中的内容非常有帮助,包括方法引发的异常等细节。是。如果需要,您可以将try/catch放在catch块中,但这应该很少。