3

私はDelphiXE2とMadを使用していますが、一部のインターネット操作に魔女がIndyを使用するアプリケーションがある場合を除きます...問題は、インターネット接続がないなどの単純な例外が発生すると、madexceptがポップアップすることです。魔女がインディから来ているこれらの例外を無効にしたい。

次の例外クラスがあります:EIdSocketErrorメッセージ:Socket Error#11004

madの例外フィルターダイアログに入力し、EIdSocketErrorを例外フィルターに配置しましたが、何が間違っているのでしょうか?

ここに画像の説明を入力してください

4

2 に答える 2

9

発生するクラスの名前は ですEIdSocketErrorが、代わりにフィルターを設定しますEIDSocketError。おそらく MadExcept は大文字と小文字を区別しますか? また、すべての Indy 例外は最終的に派生しEIdExceptionているため、代わりにそれをフィルタリングすることをお勧めします。

いずれにせよ、MadExcept はキャッチされていない例外のみをキャッチするためtry/except、コード内でブロックを使用することが正しい解決策です。それが、Indy が使用されるように設計されている方法です。コンポーネントが DFM ストリーミング中に実行時にインスタンス化されているときに例外が発生する場合は、設計時にコンポーネントをアクティブ状態のままにしておく必要があります。そんなことしたらダメ。コンポーネントが設計時に非アクティブ化されていることを確認してから、使用する準備ができたら実行時にコードでアクティブ化します。

于 2012-01-21T16:07:06.017 に答える
4

madExcept は、アプリケーション自体によって処理されない例外のみをキャッチします。したがって、問題の例外を処理する単純な try-except ブロックが、問題に対する最もクリーンな解決策である可能性があります。

于 2012-01-21T13:22:03.520 に答える