命令catch块try{//throwsIOException}catch(Exceptione){}catch(IOExceptione){}当try块抛出IOException时,会调用第一个catch块而不是第二个。谁能解释一下。为什么它调用第一个catch块?来自try-catch(C#参考);可以在同一try-catch语句中使用多个特定的catch子句。在这种情况下,catch子句的顺序很重要,因为catch子句是按顺序检查的。在不太具体的异常之前捕获更具体的异常。如果您订购了catch块,编译器将生成一个错误,这样后面的块将永远无法访问。您应该使用try{//throwsIOException}catch(IOExceptione){}catch(Exceptione){}请注意,Exception类是所有异常的基类。异常类是所有异常的基类。所以无论何时抛出任何一种异常,它都会首先被第一个能够捕获任何一种异常的catch块捕获。所以尽量在Exception之前使用IOCException你可以在这里看到IOCException的层次结构它们按照你指定的顺序被捕获。在您的情况下,您应该将IOException放在Exception之上。始终将Exception保持在最后。原因是IOException是从Exception派生出来的,所以IOException其实是一个Exception(“is-a”),所以第一个catchhandler匹配上,正在打字。IOException继承自Exception。都有例外。当Exception先被捕获时,所有的异常(包括IOException)都会被捕获。确保catch(exceptione)是列表中的最后一个catch,否则所有其他异常处理将被有效忽略。以上就是C#学习教程:尝试处理异常时命令catch块分享的所有内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
