- スレ立てるまでもない質問はここで 144匹目 [無断転載禁止]©2ch.net
702 :デフォルトの名無しさん[sage]:2016/12/25(日) 05:17:09.80 ID:8R6Ln00u - .netやJavaのTry文にはFinallyブロックは、なんであるんですか。
例外の有無にかかわらず確実に実行するとかの説明があるけど、 catchブロックを閉じた直後にFinallyブロックなんかなくても 同じではないんですか。 Finallyブロックに囲まれたリストボックスへの項目の追加も、 Try文を終えた後のラベルの更新やテキストボックスのクリアの いずれも、例外に関係なく実行してます。 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim t1 As String = TextBox1.Text 'テキストボックスの文字列 Dim t2 As String = Nothing Try t2 = t1.Substring(0, 4) &
|
- スレ立てるまでもない質問はここで 144匹目 [無断転載禁止]©2ch.net
703 :デフォルトの名無しさん[sage]:2016/12/25(日) 05:18:07.48 ID:8R6Ln00u - なぜか途中で切れたので
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim t1 As String = TextBox1.Text 'テキストボックスの文字列 Dim t2 As String = Nothing Try t2 = t1.Substring(0, 4) & "-" & t1.Substring(7) 'テキストボックスの文字列を加工する Catch ex As Exception t2 = "例外が出た """ & t1 & """" '文字数が8文字に満たないと例外を捕まえる Finally ListBox1.Items.Add(t2) '加工した文字列をリストボックスの項目に追加する End Try Label1.Text = Now.ToString '項目を追加した日時でラベルの表示を更新する TextBox1.Text = "" 'テキストボックスの文字列を消す End Sub
|
- スレ立てるまでもない質問はここで 144匹目 [無断転載禁止]©2ch.net
704 :デフォルトの名無しさん[sage]:2016/12/25(日) 05:24:17.06 ID:8R6Ln00u - わかったぞReturn (Exit Sub)か?
|
- スレ立てるまでもない質問はここで 144匹目 [無断転載禁止]©2ch.net
719 :デフォルトの名無しさん[sage]:2016/12/25(日) 14:49:18.29 ID:8R6Ln00u - まああくまでサンプルだしここでは単純にcatchは基底の例外クラスにしておいた。
ところで「そこでは補足されず上位で処理される例外」の意味を理解しにくくてしばらく 考え込んだが、returnがあるなら、おそらくcatch句でthrowして、呼び出し元に制御が戻る 直前にfinallyに行くということを言ってるんだろうな。 そして本題から外れるが、DBのレコードセット用語でのカーソルの意味って、カレントレコード みたいな意味かな。
|
- スレ立てるまでもない質問はここで 144匹目 [無断転載禁止]©2ch.net
735 :デフォルトの名無しさん[sage]:2016/12/25(日) 18:46:08.93 ID:8R6Ln00u - >>731
funcA()内で、tryブロックに囲まれてないコード(ただし、囲まれていてもそれでcatch節で 例外を再投入の対象になるコードを除く)が、呼び出し元(procA)のcatch節まで飛ぶと思う ので、それが「そこでは補足されず上位で処理される例外」の意味ですね。
|
- スレ立てるまでもない質問はここで 144匹目 [無断転載禁止]©2ch.net
741 :デフォルトの名無しさん[sage]:2016/12/25(日) 19:34:59.82 ID:8R6Ln00u - まだ100%の正解とは言えなかったようで、こうなるな。
Try 例外の派生クラスCを発生するコード Catch 例外の派生クラスA 処理 Catch 例外の派生クラスB 処理 Finally 処理 End Try この場合Catchで捕まえる対象にはならない「例外の派生クラスC」の型の例外、それが「そこでは補足されず上位で処理される例外」てなわけだ。 以上、終了。
|