アプリ版:「スタンプのみでお礼する」機能のリリースについて

こんにちは。プログラム終了方法についてお教え下さい。

下記のような処理を書いています。
if(A!=B)の場合、処理を抜けてプログラムを終了させたいと思っています。
下記のコードだとテキストボックスにエラー表示をさせた後に、プログラムを終了させたいです。

ただ、現状だと~~~処理3、処理4が実行されてしまいます。
どのようにすれば、if(A!=B)でテキストボックスにエラーを出力した後にプログラムを終了できるでしょうか?

gotoを使用し、真ん中の処理を飛ばす方法しか有りませんでしょうか?
よろしくお願いします。

try{

~~~処理1
~~~処理2

if(A!=B)
{
textbox.text = "エラー";
//goto endfinish;
}

~~~処理3
~~~処理4
}

catch
{
textbox.text = "エラー";
}

//endfinish:;

A 回答 (2件)

まず、これ、Visual Basicのカテゴリーに投稿されていますが、 Visual Basic ではありませんよね?


Visual Basicで無いのなら、具体的な言語を書いてもらわないと困ります。


「プログラムの終了」だと「アプリケーション全部の終了」と受け取れます。
そうなると、折角変更したtextbox.textを読む時間もなく画面から消えてしまうことになるのですが、それでいいのですか?
具体的に「終了」させたいのはどこなのでしょうか?


try節だけを抜ける(goto ednfinishと同等にする)のなら
・catchと同じ処理をしているのだから、 throw で例外を投げてcatchで処理させる
・try { do{~}while(false) } catch{} のように、tryの中を「1回しか実行しないループ」にして、breakで「ループを抜ける」
・finallyが無い、かつ、endnfinishの後ろに処理が無い、 なら、 return
・そもそも、こんな大きなtryが必要なのか、A!=Bの判定はここでなければならないのか、等、処理全体の流れを再検討する
等が考えられます。
    • good
    • 0
この回答へのお礼

確かにここまで長いtry catchはいらないですね・・・検討します。参考になりました、ありがとうございます!

お礼日時:2014/01/20 17:24

if(A!=B)


{
textbox.text = "エラー";
//goto endfinish;
}
else
{
~~~処理3
~~~処理4
}
    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2014/01/20 17:23

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