例外ってIf文の中に入れますか?If文の外でTry...Catchしますか??
Sub Cal(By Val Data As String)
If ( Flag = "hoge") Then
Total = js.Eval(Work)
End If
End Sub
それと、”エラーコードをテキストの説明に変換する”FormatMessage関数を使おうと思っています。
「例外処理 = FormatMessage関数」という図式は古いですか?いまはもっと違う方法ですか?
No.3ベストアンサー
- 回答日時:
FormatMessage関数を初めて聞いたので突っ込まなかったのですが、ちょっと調べてしました。
http://msdn.microsoft.com/ja-jp/library/cc428939 …
Win32APIを利用した関数なんですね。
戻り値が存在していろいろできるみたいですね。
・関数が成功すると、バッファに格納されたバイト数(Unicode 版の場合は文字数)が返ります(終端のNULLを文字除く)。
・関数が失敗すると 0 が返ります。拡張エラー情報を取得するには、 GetLastError 関数を使います。
調べた結果ですが、これを必要とするのであれば使ってもいいと思います。
但し、例外処理でメッセージを出したいだけであれば MessageBox.Show を使ってしまうと思います。
ありがとうございます。
関数が失敗すると、コンパイラがそのエラー情報をコードではなく、
文字列にして説明してくれるらしいです。
FormatMessageがあまり使われないことがわかって、大変為になりました。
No.2
- 回答日時:
サンプルに載ったコードを見る限りだとIFの外にTry-Catchを書きます。
■理由
この変数「Flag」の型がわからない為、例外を発生させる可能性がある。
多分、文字列のメンバ変数であろうと予想はできますが確証が持てないので・・・。
また、Try-Catchに関してですが、基本的には外で書きたい派です。
予想できる例外なんて実装の時点で対応するべきで、例外と考えませんし・・・。
この回答への補足
ところで、FormatMessage関数を使うのは間違いですか?
MessageBox.Show("あなたは禁断の0除算を行いました")を使いますか???
ありがとうございます。
「予想できる例外なんて実装の時点で対応するべきで、例外と考えません」
かっこいいw
簡単な電卓なので、Flagの型に変な型入らないです。
Eval()の上下を囲むことに決意しました。
No.1
- 回答日時:
If文の中か外かはまったく気にしません。
あくまで「必要な場合に必要な範囲で」使います。
あと,Try - Catchはあまり使いません。
ref: むやみにキャッチしないでね。ゴールキーパー以外はハンドで反則ですよ。 - NAL-6295の舌先三寸
http://d.hatena.ne.jp/NAL-6295/20050909/p1
この回答への補足
ところで、FormatMessage関数を使うのは間違いですか?
MessageBox.Show("あなたは禁断の0除算を行いました")を使いますか???
あがとうございます。
0除算のときに例外処理を書きたいと思っています。
Try...Catchだと、ポップアップを出して処理が終了してしまうんですか。
まあ、処理が終了してくれていいんですけど。
Try-Finallyで、ポップアップして処理を抜け出すようにしたいです。
出来ますか?
Throwしたらまずいですよね・・・無い方がましかも。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Visual Basic(VBA) excel VBA if文について 3 2022/03/27 17:42
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Visual Basic(VBA) excel2021で実行できないマクロ。どこを直したらいいのか 2 2022/03/28 03:40
- Visual Basic(VBA) [Excel VBA] このコードでは行の挿入や行の消去をすると13のエラーが出てしまう。 3 2022/12/09 00:29
- Visual Basic(VBA) InputBoxでキャンセルボタンを押したらファイル自体を閉じたい 3 2022/07/23 17:52
- Excel(エクセル) B列に文字がはいったらA列に数字が入るマクロードを完成させたい 4 2023/04/21 01:58
- Visual Basic(VBA) オブジェクトが見つかりません 1 2023/06/24 19:43
- Visual Basic(VBA) ExcelVBAでDo Until loopのネスト、IF文を使って一致する物と一致しない物としたい 11 2022/12/24 17:46
- Visual Basic(VBA) 【追加】ファイルを閉じてダイアログで保存した時だけ処理の実行をする 3 2022/03/23 15:43
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
VB.NETで DataRow()を利用して、値からコードを取得したい。
Visual Basic(VBA)
-
テキストボックスの中身をリセット(クリア)したい
Visual Basic(VBA)
-
return trueとreturn falseの用途・違いは・・・?
JavaScript
-
-
4
“try/catch”と“if/else”
C言語・C++・C#
-
5
VBのReturnの使い方
Visual Basic(VBA)
-
6
DataGridView からの値取得に関して
Visual Basic(VBA)
-
7
C# try-catch でcatchに飛ばす方法
C言語・C++・C#
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「タイプ初期化子が例外をスロ...
-
連続する「\\」をひとつの「\\...
-
SQLException getNextException()
-
数字か文字列かを判定する関数
-
WebClient()以外でネットにアク...
-
基本的にはないと言われました
-
nullで、return出来るのはどん...
-
JAVA 日付チェック方法 年・...
-
VB.Net Object型 空かどうか
-
VB.NETで16進数が正しいかどう...
-
全角スペースのチェックについて
-
C#の捕捉されない例外処理の対...
-
VBA 400エラー 1004エラー
-
オーバーライドしたメソッドで...
-
0除算の例外処理ができない!!...
-
文字列からダブルクオートの削除
-
Timestamp型への変換について(J...
-
サーブレットからJSPの呼び出し...
-
ファイルダイアログを開いた時...
-
Excelでのエラー
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「タイプ初期化子が例外をスロ...
-
【JAVA】与えられた金額を貨幣...
-
連続する「\\」をひとつの「\\...
-
文字列からダブルクオートの削除
-
VB.Net Object型 空かどうか
-
0除算の例外処理ができない!!...
-
VB.NETで16進数が正しいかどう...
-
数字か文字列かを判定する関数
-
例外ってIf文の中に入れますか...
-
C# マルチスレッドにおける例外...
-
スタックオーバーフローとは?
-
String型の日付(2005/11/25)の...
-
Timestamp型への変換について(J...
-
C# UriFormatExceptionの回避
-
ADOによるレコードの追加/更新
-
VBA Evaluate関数 型が一致しま...
-
WebClient()以外でネットにアク...
-
時間の取得
-
C#の捕捉されない例外処理の対...
-
javaプログラムで背景色を変更...
おすすめ情報