
はじめまして。現在.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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
システム例外のメッセージを変...
-
他のウィンドウのボタンを自動...
-
vbaから他のアプリを終了
-
VBAでコントロールのハンドルを...
-
DLL VB Wheel ホイール
-
メッセージボックスの選択ボタ...
-
SendMessage で ESC など
-
WM_NCLBUTTONUPについて
-
VBでRegisterWindowMessage関数...
-
VB.netでSendMessageを使用して...
-
「アイテムは収集されました」...
-
グラフの交点の求め方(Excel)
-
エクセルで作った新しいウイン...
-
コントロールの書式設定で、“コ...
-
皆さん、おはようございます♪ ...
-
[VB.net] DataGridViewの列ヘッ...
-
VCのコントロール最大配置数は?
-
メッセージボックスを大きくす...
-
C# FlowLayoutPanelのコントロ...
-
文字色 エクリプス
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
メッセージボックスの選択ボタ...
-
vbaから他のアプリを終了
-
msgboxの表示位置
-
VBAでコントロールのハンドルを...
-
他のウィンドウのボタンを自動...
-
デスクトップ上のアイコンの位...
-
SendMessage で ESC など
-
SetWindowText関数について
-
メッセージハンドラ
-
Excel VBA で外部アプリケーシ...
-
点滅で知らせる方法
-
windowsメールスロットについて...
-
マウスホイールをフックしたい
-
DLL VB Wheel ホイール
-
WM_NCLBUTTONUPについて
-
VB.netでSendMessageを使用して...
-
チェックボックスのキーダウン...
-
有効でないウインドウハンドル...
-
コールバック関数とは…(C言語)
-
キーボード・フックのアプリを...
おすすめ情報