在 except 中 return 后还会不会执行 finally 中的代码?怎么抛出自定义异常?
会执行,在方法返回给调用者前执行,因为如果存在finally代码块,try中的return语句不会立马返回给调用者,而是记录下返回值待finally代码块执行完毕之后再返回;
举一反三
- 在异常处理结构try…except…else…finally中,只有异常没有发生时才会执行finally中的代码。
- try {}里有一个return语句,那么紧跟在这个try后的finally {}里的代码会不会被执行,什么时候被执行? A: 不会执行 B: 会执行,在return前执行 C: 会执行,在return后执行 D: 会执行,可能在return前执行,也可能在return后执行
- 无论try{}块中的代码是否抛出异常,finally子句都会执行。()
- 在try的括号里面有return一个值,那在哪里执行finally里的代码()。 A: 不执行finally代码 B: return前执行 C: return后执行
- 关于异常处理中finally代码段的描述中,正确的是()。 A: finally{}出现在的catch的前面 B: finally{}是必须出现的 C: finally{}中的代码无论是否发生异常都是必须执行的 D: finally{}中的代码一定不会产生异常
内容
- 0
在异常处理中,try-catch后如果定义了finally,则finally一般都会执行。
- 1
如果try语句块没有抛出异常,则执行完try语句代码后直接执行finally语句块。
- 2
以下关于Python语言中的try语句的描述中,错误是( ) A: 一个try代码块可以对应多个处理异常的except代码块 B: 党执行try代码块触发异常后,会执行except后面的语句 C: try用来捕捉执行代码发生的异常,处理异常后能够回到异常出继续执行 D: try代码块不触发异常时,不会执行except后面的语句
- 3
关于异常处理说法错误的是 A: try捕获代码块中的异常,except异常执行后能够回到try代码快继续捕获 B: 异常处理可以处理多种异常分别执行except代码 C: try语句块捕获到异常时,会执行excep后面的语句 D: try代码块无异常时,except包含的代码块也不会被执行
- 4
try-catch结构中,catch{}里有一个return语句,如果抛出异常,则后面finally{}里的语句将不会被执行。(<br/>)