
はじめまして。現在.Net でソフトウェアの開発をしています。
さっそくですが質問させていただきます。
例えばRegexクラスのコンストラクタで、正しくない正規表現パターンを入力すると
ArgumentException が発生します。
この例外メッセージを変更したいのですがどうしたら良いでしょうか。
具体的に説明しますと、「(((」という文字をコンストラクタに渡すと、
「解析中 "(((" - ) が足りません。」という例外メッセージが表示されます。
また、「)))」という文字をコンストラクタに渡すと、
「解析中 ")))" - )' が多すぎます。」となります。
この例外メッセージを変更したいのですが、例えば
「解析中 "(((" - ) が足りません。」というメッセージであれば「"("に対する")"が見つかりません。」に、
「解析中 ")))" - )' が多すぎます。」というメッセージならば「"("の数に対して")"が多すぎます。」とかに変更したいとします。
例外メッセージごとに細かく分岐処理するにはどうしたら良いでしょうか?(質問1)
(メッセージ中に「解析中 足りません。」が含まれてたら用意したメッセージに変更する とかは出来そうですが・・・他に解決策は?)
また、Regexコンストラクタから発生するArgumentExceptionの例外メッセージを全て知る方法はあるのですか?(質問2)
(Regexに限らず、色々なクラスのメンバが持つ例外のメッセージ一覧は知ることが可能なものなのでしょうか?)
加えて、メッセージを特定する固有のエラーコードのようなものは存在しないのでしょうか?(質問3)
以上3点、どなたか分かる範囲がありましたら、ご回答よろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
直接の回答じゃないけど、多分何もしないのが正解に思えます。
.Net Frameworkの既定のメッセージのままのほうが、解決策を見つけ出しやすいでしょうし(googleの検索などでひっかかってくれるとか)。
質問2、3は.Net Frameworkのソースをみるとか、アッセンブリやメッセージリソースを解析するとかしないとわからないと思います。
なので、質問1についても、例外のMessageを読んですり替えるしかないと思います。
それか、鬼車など別の正規表現ライブラリを独自に組み込んで、正規表現パーザの処理にたちいってエラーを吐くようにすれば、なんとかなるかも。
> .Net Frameworkの既定のメッセージのままのほうが、解決策を見つけ出しやすいでしょうし(googleの検索などでひっかかってくれるとか)。
エラーメッセージの中にソフトウェアの使用者に見せたくないものがありましたので、
悩んでいました。
質問2、3は一般的に出来ることでは無いんですね・・・。
勉強になりました。
結局のところ、今回はエラーメッセージに特定のワードが含まれていたらリプレースするという強引な方法を採ることにしました。
それにしても、別の正規表現ライブラリを独自に読むっていうのは良いアイデアですね。
今後の教訓になりそうです。ご回答ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 格安スマホ・SIMフリースマホ UQモバイルで、LINEが機能しないのはなぜ? 2 2022/08/19 11:19
- 宇宙科学・天文学・天気 AIが答えた方程式 1 2023/02/20 00:12
- ヤフオク! Yahooオークションの落札代金の決済について 2 2023/07/03 20:31
- gooのスマホ ほっとくと+メッセージ(ショートメール)が使えなくなるってこと? 3 2022/07/13 07:49
- 統計学 加重最小二乗法=①「変数を自然対数変換」=②「誤差項の分散の逆数を重み付け」? 8 2022/11/26 11:15
- iPhone(アイフォーン) iPhoneのメッセージ機能について 3 2022/12/26 09:28
- テレビ テレビかレコーダーから過電流 6 2023/01/12 21:05
- Windows 10 このWindowsUpdateの失敗メッセージは何を物語るか? 5 2023/07/17 11:49
- SoftBank(ソフトバンク) iMessageについての質問です。 前のiPhoneから新しい機種に変更し、電話番号も契約者も変わ 1 2023/04/08 22:46
- 統計学 学業成績に関する重回帰分析の見方について 4 2022/06/06 17:19
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
msgboxの表示位置
-
VB.netでFindWindowExやると・...
-
テキストボックスでコンテキス...
-
VBAでコントロールのハンドルを...
-
SetWindowText関数について
-
タスクバーの並び替え
-
Buffer overrun, data ..
-
WINDOWを最前面に出したい!!
-
システム例外のメッセージを変...
-
マウスの左クリックの内容を知...
-
vbaから他のアプリを終了
-
メッセージボックスの選択ボタ...
-
VC++(MFC)でタスクバーに常駐し...
-
WM_CTLCOLORDLG
-
DLL VB Wheel ホイール
-
コールバック関数とは…(C言語)
-
警告メッセージのセキュリティ...
-
グローバルフックについて
-
HTMLの書換方法を教えてください。
-
キーボード・フックのアプリを...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
vbaから他のアプリを終了
-
他のウィンドウのボタンを自動...
-
メッセージボックスの選択ボタ...
-
msgboxの表示位置
-
SendMessage で ESC など
-
VBAでコントロールのハンドルを...
-
SetWindowText関数について
-
VBA 複数セルが空白なら印刷さ...
-
点滅で知らせる方法
-
チェックボックスのキーダウン...
-
デスクトップ上のアイコンの位...
-
CloseHandle()
-
メッセージループについて
-
メッセージハンドラ
-
VB.netでSendMessageを使用して...
-
システム例外のメッセージを変...
-
Excel VBA で外部アプリケーシ...
-
マウスの右クリック+Shiftキー...
-
キーボード・フックのアプリを...
-
windowsメールスロットについて...
おすすめ情報