Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# catch块中是否可能存在异常?_C#_Exception Handling_Try Catch - Fatal编程技术网

C# 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
中执行某项操作,而该操作可能会引发另一个异常的原因是无法预测的,那么您可以在
catch
中放置另一个
try/catch
。这种情况确实发生过——并非闻所未闻——但并不常见

如果必须在
catch
中调用其他方法,最好知道它是否可能引发异常。熟悉您的日志记录并确保它不会引发另一个异常并没有坏处。或者,如果它是某个.NET Framework方法,文档通常会告诉您它抛出了哪些异常以及原因

作为一个随机示例,请查看
字典方法的文档:

例外情况

Exception               Condition   

ArgumentNullException   key is null 
然后它告诉你,如果你想知道,如果你试图删除一个不存在的密钥会发生什么

如果字典不包含具有指定键的元素,则字典保持不变。没有抛出异常


熟悉在线文档中的内容非常有帮助,包括方法引发的异常等细节。

是。如果需要,您可以将try/catch放在catch块中,但这应该很少。