
例外って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ランキング
-
「タイプ初期化子が例外をスロ...
-
VC++におけるCStringの変換
-
数字か文字列かを判定する関数
-
VB.NETで16進数が正しいかどう...
-
C#の捕捉されない例外処理の対...
-
ノートPC内臓CD-ROM(DVD-ROM)...
-
C# マルチスレッドにおける例外...
-
C#でニコニコ動画の情報取得時...
-
アクセスのテーブルのフィール...
-
swingで。
-
String型の日付(2005/11/25)の...
-
[C#][FX]DLLを利用した共有メモ...
-
文字列からダブルクオートの削除
-
VB.Net Object型 空かどうか
-
javaのコンパイルエラーが解決...
-
ファイルダイアログを開いた時...
-
文字列の最後の文字取得
-
0除算の例外処理ができない!!...
-
【JAVA】与えられた金額を貨幣...
-
VBA 400エラー 1004エラー
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「タイプ初期化子が例外をスロ...
-
C#の捕捉されない例外処理の対...
-
VB.Net Object型 空かどうか
-
連続する「\\」をひとつの「\\...
-
VC++におけるCStringの変換
-
VBA Evaluate関数 型が一致しま...
-
Javaで文字列をゼロ埋め(ゼロパ...
-
ファイルダイアログを開いた時...
-
VB.NETで16進数が正しいかどう...
-
Timestamp型への変換について(J...
-
C# マルチスレッドにおける例外...
-
コンストラクタでの例外は不可...
-
文字列からダブルクオートの削除
-
String型の日付(2005/11/25)の...
-
例外ってIf文の中に入れますか...
-
初回例外
-
【JAVA】与えられた金額を貨幣...
-
アサーションと例外処理の違い...
-
VBA 400エラー 1004エラー
-
WebClient()以外でネットにアク...
おすすめ情報