dポイントプレゼントキャンペーン実施中!

tryのブロック内でfinallyに移動させる方法やfinallyに移動せずにtryブロックを終了させる方法を教えてください。

try {
 if () {
  // go finally
  
 }
 if () {
  // break try
  
 }
} finally {

}

A 回答 (6件)

質問者の意図が正確につかめていないかもしれませんが、ブロックを逆にしてはどうですかね。



if () {
 try {
  // go finally
 } finally {
 }
}
if () {
 try{
  // break try
 }
}
    • good
    • 0

finally に移行しない方法は1つだけあります。


System.exit(0);

本来の要件を明確にしていただいた方が、より建設的な回答が得られると思いますよ。
# 薫習のサンプルをいただき質問者に感謝!
    • good
    • 0

教えてないよ?


ある、というなら実例示して頂きましょう。
    • good
    • 0

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();
}

#これ以上技術系から教えてやることはないかな、うん。
    • good
    • 0
この回答へのお礼

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

お礼日時:2010/01/13 16:50

> tryのブロック内でfinallyに移動させる方法



return

> finallyに移動せずにtryブロックを終了させる方法

無理。
やむを得ない状況なのかなんなのか知らないが
そんなふうにfinallyを使用しようとしていることが間違い。

それでもなんとかする必要があるなら
#1の言う通りフラグ等たてて分岐させる以外方法は無い。
    • good
    • 0

tryの中でreturnすれば、finallyに移ります。


finallyを通らずに処理を進める、ということは絶対できません。
必ずfinallyに通る、という仕組みだからです。
フラグを使ってfinallyの中の処理を実行しないようにすればよいと思います。

ただ、かれこれ10年以上Javaのプログラミングをやっていますが、質問者さんがやろうとしているような状況に遭遇したことはありません。
質問自体が的外れな気がします。
ファイルのオープンとか、そういうことでしょうかね。
    • good
    • 0
この回答へのお礼

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

お礼日時:2010/01/06 13:03

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A