プログラム終了方法

このQ&Aのポイント
  • プログラム終了方法についてお教えします。
  • if(A!=B)でテキストボックスにエラーを出力した後にプログラムを終了させたいです。
  • gotoを使用せずに、プログラムを終了させる方法を教えてください。
回答を見る
  • ベストアンサー

プログラム終了方法

こんにちは。プログラム終了方法についてお教え下さい。 下記のような処理を書いています。 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:;

質問者が選んだベストアンサー

  • ベストアンサー
  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.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の判定はここでなければならないのか、等、処理全体の流れを再検討する 等が考えられます。

fflashing
質問者

お礼

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

その他の回答 (1)

  • uruz
  • ベストアンサー率49% (417/840)
回答No.1

if(A!=B) { textbox.text = "エラー"; //goto endfinish; } else { ~~~処理3 ~~~処理4 }

fflashing
質問者

お礼

ありがとうございます。

関連するQ&A

  • ExcelVBAでデータ型を判定し、エラー値を返すプログラム

    Excelのプログラムでテキストボックスに入力すると、小数点型か判定し、エラーの場合、エラー値を返すようなプログラムを作りたいのですがどのようにしたらいいでしょうか? a = エラー(CSng(TextBox1.Text)) 多分こんな感じになると思うのですが。 あとエラーが出ても特にその後の処理には影響ないので、 On Error Resume Next このように、エラーが出てもいいようにしておけばよいでしょうか? 回答よろしくお願いします。

  • C言語について質問なんですが((。繰り返しを指示するプログラムがどうも

    C言語について質問なんですが((。繰り返しを指示するプログラムがどうも上手くいきません・・・ C言語について質問なんですが((。繰り返しを指示するプログラムがどうも上手くいきませんorz。詳しい方是非応援に(TAT)! 今打ち込んでいるとこなんですがどうもうまくいかなくて(orz どんな内容かといいますとテキストボックス1に入力した数値を テキストボックス2に入力した回数分掛けた値をもとめ テクストボックス3に出力するものです 例えばテクストボックス1に「13」と入力し、テクストボックス2に「2」と入力したら 169とテクストボックス3に出力したいのですが上手くいかなくて。。。 for(i=0;i<b;i++)この後に繰り返しの式を書かなければと思うのですが・・・それも思いつかず(TAT) っていうか他に2~3個方法があるのですがこの for(i=0;i<b;i++)があっているのかもわからず・・・orz 是非、是非力をかしてください! ちなみにプログラムはこんな感じになってます↓ private void button5_Click(object sender, EventArgs e) { //2の0乗=1 //2の1乗=1*2*2=2 //2の2乗=1*2*2=4 //2の3乗=1*2*2*2=8 //2の4乗=1*2*2*2*2*=16 int a, b, c,i; //入力 //textboxの数値を変数aに入力 a = int.Parse(textBox1.Text); //↑がわからに場合数字のドキュメントで数値入力を確認 //textbox2の数値を変数bに入力 b = int.Parse(textBox2.Text); //処理 //cに1を代入 //b回繰り返す //cにaを掛ける c = 1; //出力 //求めた答えをtextbox4に出力 textBox3.Text = c.ToString(); for(i=0;i<b;i++) { }}

  • try~catchについて

    プログラム初心者です 繰り返し処理の中でtry~catchにスローしてもいいでしょうか?(正常にfor文は終了しますか?) try { for($a = 0; $a < 5; $a++) { if($a==3){ throw new Exception('3'); } } catch (Exception $e) { $msg = $e->getMessage(); } よろしくお願いします

    • ベストアンサー
    • PHP
  • 例外処理の使用方法(VB.NET)

    以前、PictureBoxの背景色変更について質問をさせていただいたものです。 (http://okwave.jp/qa3795334.html) その中で、数値を直接テキストボックスに入力し 以下の場合はエラーとして処理をしたいと思っています。 1.テキストボックスが空白の場合 2.0~255の範囲内に無い数字が入力された場合 3.上記2つ以外の全て Try~Catchを利用し、2は Catch ex As ArgumentException とし、3は Catch ex As Exception としたところうまくいきましたが テキストボックスが空白の場合、という処理がどうしてもわかりません。 考えられうる例外クラス名はすべて試したのですが どれもうまくいきませんでした。 上記3つの条件すべてを満たせる例外処理をするには いったいどうすればいいでしょうか?

  • PHPの例外処理

    PHPの例外処理について教えてください function test() {   try{    $a = 10;    $b = 0;    $result = $a/$b;   }   catch(Exception $e){    //エラー処理   } } 上記でcatchが実行されるためにはどのようにすれば良いでしょうか?例えば if($b == 0) {   throw new Exception('例外'); } を「$result = $a/$b;」の前に書いておくなどすればcatchされるのはわかりますが、 想定されるすべての例外のthrow処理を記載するなんてことはしたくありません。 実行してエラーだったら自動的にthrowされる、なんていうことはPHPでは無理でしょうか?

    • ベストアンサー
    • PHP
  • 入力時エラーメッセージの出し方

    http://oshiete1.goo.ne.jp/qa3745129.htmlを参考に 下記の構文を作りましたが、エラーメッセージが出せなく困っています。 フォームで入力を行う際に、該当ボックスで車番一覧にデータの無いものに関してエラーメッセージを出したいと考えています。 修正箇所に関してご指摘いただければと思います。 よろしくお願いします。 Private Sub CommandButton1_Click() Dim check As Long '重複の有無(=0:重複せず,>0:重複) With Cells(Rows.Count, 1).End(xlUp).Offset(1) .Value = TextBox1.Text .Offset(0, 1).Value = TextBox2.Text .Offset(0, 2).Value = TextBox3.Text .Offset(0, 4).Value = TextBox4.Text On Error Resume Next check = 0 check = WorksheetFunction.Match(CInt(TextBox2.Text), Range("車番一覧", Columns(1))) On Error GoTo 0 If check = 0 Then MsgBox "その車番は登録されていません!", vbExclamation, "入力エラー" TextBox2.SetFocus Exit Sub End If Exit Sub End With TextBox1.Text = "" TextBox2.Text = "" TextBox3.Text = "" TextBox4.Text = "" If TextBox1.Text = "" Then TextBox1.SetFocus End If Range("A1").Sort Key1:=Range("A1"), order1:=xlAscending, Key2:=Range("A1"), order2:=xlAscending, Header:=xlGuess End Sub

  • ユーザーフォーム上にある「テキストボックス」に小数が入力できない

    以前にユーザーフォーム上のテキストボックスにセル値反映する方法を下記(サンプル1)のようにお教えいただいたのですが、下記のようにマクロを組むとテキストボックスに小数が入力できなくなってしまいます。 どのようにしたら、テキストボックスに小数が入力できるようになるのでしょうか? お教えください。 事例)「1.234」とテキストボックスに打ち込むと「1」    「0.856」とテキストボックスに打ち込むと「0」と    なってしまいます。 (サンプル1) 'A1のデータを反映するとした場合 'OptionButton1のコード Private Sub OptionButton1_Click() TextBox1 = Sheets("Sheet1").Range("a1") End Sub 'B1に反映するとして 'OptionButton2のコード Private Sub OptionButton2_Click() TextBox1 = "" End Sub 'TextBox1のコード Private Sub TextBox1_Change() If OptionButton2 = True Then Sheets("Sheet1").Range("B1") = TextBox1.Value End If End Sub

  • VBSのプログラム

    VBSのプログラムで質問です。 (1)ラジオボタンA、B (2)テキストボックス があって、 Aを選択するとテキストボックスが入力可能になり、 Bを選択するとテキストボックスが入力不可能になるプログラムを作りたいのですが、 どのようなプログラムを作ればいいでしょうか?

  • プログラムの組み方について

    ウインドウズ98とエクセルとワードを使っていますが、 かつてのBASICのようなプログラムを組んで実行 させることは可能なのでしょうか?例えば 10 A=1 20 A=A+1:IF A>9 THEN 50 30 FOR B=1 TO A:PRINT B 40 GOTO 20 50 PRINT A 60 END というような簡単なものでいいのですが・・・。 どなたか教えて下さい。よろしくお願いします。

  • 十進ベーシックのプログラムの間違いを教えてください。

    誰か次のプログラムの間違いを直してください。入力を間違えても次に進めるようにするにはどこをどう変えたらよいのですか? RESTORE 30 READ a$ 40 INPUT b$ IF a$=b$ THEN IF a$<>b$ THEN GOTO 40 PRINT a$ GOTO 30 DATA i,x,d,k,k,h,end END IF END

専門家に質問してみよう