有关下列异常处理机制叙述正确的是()。try{可能产生异常的语句块;}catch(exceptiontype1e){处理异常e的语句块;}catch(exceptiontype2e){处理异常e的语句块;}……finally{最终处理语句块;}
A: try子句可能有多个,catch子句可能有多个,finally子句必须有。
B: 多个catch参数中的异常类可以有父子关系,但父类异常的catch子句应该在子类异常的catch子句前面。
C: 如果try子句没有抛出任何异常,则跳过catch子句,转移到finally子句继续执行。
D: 当try子句监视的语句块抛出异常时,运行时系统会根据catch子句的顺序,从第一个开始,逐个查找能够捕获该异常的catch子句并执行catch子句内的语句块以完成对异常的处理,然后继续执行后面的catch子句,最后转移到finally子句,执行该子句中的语句块。
A: try子句可能有多个,catch子句可能有多个,finally子句必须有。
B: 多个catch参数中的异常类可以有父子关系,但父类异常的catch子句应该在子类异常的catch子句前面。
C: 如果try子句没有抛出任何异常,则跳过catch子句,转移到finally子句继续执行。
D: 当try子句监视的语句块抛出异常时,运行时系统会根据catch子句的顺序,从第一个开始,逐个查找能够捕获该异常的catch子句并执行catch子句内的语句块以完成对异常的处理,然后继续执行后面的catch子句,最后转移到finally子句,执行该子句中的语句块。
举一反三
- 如果try语句块中抛出异常并被catch子句捕获,则在抛出异常的地方终止try代码块的执行,转而执行相匹配的catch子句,最后执行finally语句块。
- try语句块中抛出的异常对象与catch子句的异常参数是同种类型,该catch子句才能捕获这个异常。
- finally语句块在下面哪些情况下执行?( ) A: try语句块中运行正常,无异常发生 B: try语句块有异常发生,catch子句已捕获 C: try语句块有异常发生,catch子句未捕获 D: 其余都不对
- 在异常处理中总是将可能产生异常的语句放在try块中,用catch子句去处理异常,而且一个try块之后只能对应一个catch语句
- 在C#中,异常处理结构语句包括try子句、catch子句和finaly子句,其中catch子句也是可以省略的。