- 締切済み
tryの終了
tryのブロック内でfinallyに移動させる方法やfinallyに移動せずにtryブロックを終了させる方法を教えてください。 try { if () { // go finally } if () { // break try } } finally { }
- みんなの回答 (6)
- 専門家の回答
みんなの回答
- junkUser
- ベストアンサー率56% (218/384)
質問者の意図が正確につかめていないかもしれませんが、ブロックを逆にしてはどうですかね。 if () { try { // go finally } finally { } } if () { try{ // break try } }
- junkUser
- ベストアンサー率56% (218/384)
finally に移行しない方法は1つだけあります。 System.exit(0); 本来の要件を明確にしていただいた方が、より建設的な回答が得られると思いますよ。 # 薫習のサンプルをいただき質問者に感謝!
- osu_neko09
- ベストアンサー率48% (56/115)
教えてないよ? ある、というなら実例示して頂きましょう。
- osu_neko09
- ベストアンサー率48% (56/115)
Try~Catch~Finallyブロックは ・処理中にエラーが発生する可能性があり、エラー処理を行なう場合 ・処理の結果にかかわらず、特定の処理(後始末)を行なう必要のある場合 などに使用します。 Try~Catch~Finallyなどを使わずに、こう書けば済む話です。 boolean flg = false; do { if () { // go finally flg = true; break; } if () { // break try break; } } while (false); if(flg){ //something(); } #これ以上技術系から教えてやることはないかな、うん。
- kyonn2008
- ベストアンサー率22% (4/18)
> tryのブロック内でfinallyに移動させる方法 return > finallyに移動せずにtryブロックを終了させる方法 無理。 やむを得ない状況なのかなんなのか知らないが そんなふうにfinallyを使用しようとしていることが間違い。 それでもなんとかする必要があるなら #1の言う通りフラグ等たてて分岐させる以外方法は無い。
お礼
おまえ>>1が書いた正解を否定するのか 知ね
- kotoby2003
- ベストアンサー率15% (280/1755)
tryの中でreturnすれば、finallyに移ります。 finallyを通らずに処理を進める、ということは絶対できません。 必ずfinallyに通る、という仕組みだからです。 フラグを使ってfinallyの中の処理を実行しないようにすればよいと思います。 ただ、かれこれ10年以上Javaのプログラミングをやっていますが、質問者さんがやろうとしているような状況に遭遇したことはありません。 質問自体が的外れな気がします。 ファイルのオープンとか、そういうことでしょうかね。
お礼
>質問者さんがやろうとしているような状況に遭遇したことはありません 技術系はこれだから困る
お礼
君はまだ2ページ目のSystem.out.println("HelloWorld");しか知らない 教えるどころかTry~Catch~Finallyを使わないとコンパイルできない関数があることを教えてあげよう