ある場合は、次のコードスニペットをご覧ください:TCLキャッチ:キャッチ結果オプションで異なる-codeとレベルのリターンコードがTCL_RETURN
set catch_r [catch {
return -code return -level 0 "something"
#return -code break -level 1 "something"
} result options]
puts "catch result: \n$catch_r"
puts result:
puts $result
puts options:
puts $options
出力は
catch result:
2
result:
something
options:
-code 0 -level 1
Iの場合でありますコメント行return -code break -level 1 "something"
を使用し、出力は、私はより多くのを試してみました
catch result:
2
result:
something
options:
-code 3 -level 1
あるそのような異なる-level
番号の-code continue
又は-code error
として3210、およびそれがreturn -code return
されていない場合options
に-code
と-level
の値がreturn -code -level
と同じであることを見出しました。
return -code return -level N
の場合、options
は-code 0 -level N+1
であり、-code 2 -level N
ではありません。なぜreturn -code return
がこのように処理されるのですかcatch
?それの意味はなんですか?それは-level
オプションの値と同じ数のスタックレベルを経験してきたまで
おかげ