• 締切済み

tryの終了

tryのブロック内でfinallyに移動させる方法やfinallyに移動せずにtryブロックを終了させる方法を教えてください。 try {  if () {   // go finally     }  if () {   // break try     } } finally { }

みんなの回答

  • junkUser
  • ベストアンサー率56% (218/384)
回答No.6

質問者の意図が正確につかめていないかもしれませんが、ブロックを逆にしてはどうですかね。 if () {  try {   // go finally  } finally {  } } if () {  try{   // break try  } }

  • junkUser
  • ベストアンサー率56% (218/384)
回答No.5

finally に移行しない方法は1つだけあります。 System.exit(0); 本来の要件を明確にしていただいた方が、より建設的な回答が得られると思いますよ。 # 薫習のサンプルをいただき質問者に感謝!

回答No.4

教えてないよ? ある、というなら実例示して頂きましょう。

回答No.3

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(); } #これ以上技術系から教えてやることはないかな、うん。

eresisy
質問者

お礼

君はまだ2ページ目のSystem.out.println("HelloWorld");しか知らない 教えるどころかTry~Catch~Finallyを使わないとコンパイルできない関数があることを教えてあげよう

  • kyonn2008
  • ベストアンサー率22% (4/18)
回答No.2

> tryのブロック内でfinallyに移動させる方法 return > finallyに移動せずにtryブロックを終了させる方法 無理。 やむを得ない状況なのかなんなのか知らないが そんなふうにfinallyを使用しようとしていることが間違い。 それでもなんとかする必要があるなら #1の言う通りフラグ等たてて分岐させる以外方法は無い。

eresisy
質問者

お礼

おまえ>>1が書いた正解を否定するのか 知ね

  • kotoby2003
  • ベストアンサー率15% (280/1755)
回答No.1

tryの中でreturnすれば、finallyに移ります。 finallyを通らずに処理を進める、ということは絶対できません。 必ずfinallyに通る、という仕組みだからです。 フラグを使ってfinallyの中の処理を実行しないようにすればよいと思います。 ただ、かれこれ10年以上Javaのプログラミングをやっていますが、質問者さんがやろうとしているような状況に遭遇したことはありません。 質問自体が的外れな気がします。 ファイルのオープンとか、そういうことでしょうかね。

eresisy
質問者

お礼

>質問者さんがやろうとしているような状況に遭遇したことはありません 技術系はこれだから困る

関連するQ&A