0

私のアプリケーションでは、Wireshark の一部である capinfos.exe を開始しています。コンストラクターで、マシンに Wireshark がインストールされているかどうかを確認します。

private string _filePath = "";

public Capinfos(string capturePath)
{
    if (Directory.Exists(@"C:\Program Files (x86)\Wireshark"))
    {
        _capInfos = @"C:\Program Files (x86)\Wireshark\capinfos.exe";
    }
    else if (Directory.Exists(@"C:\Program Files\Wireshark"))
    {
        _capInfos = @"C:\Program Files\Wireshark\capinfos.exe";
    }

    _filePath = capturePath;
}

ファイルがマシンに存在しない場合に例外をスローする最良の方法は何ですか: Wiresharkをインストールしてください

4

3 に答える 3

1
private string _filePath = "";

public Capinfos(string capturePath) throws FileNotFoundException
{
    if (Directory.Exists(@"C:\Program Files (x86)\Wireshark"))
    {
        _capInfos = @"C:\Program Files (x86)\Wireshark\capinfos.exe";
    }
    else if (Directory.Exists(@"C:\Program Files\Wireshark"))
    {
        _capInfos = @"C:\Program Files\Wireshark\capinfos.exe";
    } else
    {
       throw new FileNotFoundException(@"Wireshark installation not found");
    } 

    _filePath = capturePath;
}

次に、次のコードを使用して例外をキャッチできます。

   try
    {
        Capinfos("path");
    }
    catch (FileNotFoundException ex)
    {
        Messagebox.Show("Please install wireshark.");
    }

私は C# をインストールしていません。これは手書きで書かれています。うまくいきますように!例外について学ぶための優れたリソースは次のとおりです: http://msdn.microsoft.com/en-us/library/0yd65esw(v=vs.80).aspx

于 2012-12-05T18:26:04.750 に答える
0

何かのようなもの:

throw new FileNotFoundException("Could not find " + _capInfos, _capInfos);
于 2012-12-05T18:23:56.697 に答える
0

これがあなたが望むものかどうかはわかりませんが、try-catchブロックを使用してみてください。try ブロックで .exe の起動を試み、失敗した場合はFileNotFoundExceptionをスローし、catch ブロックでポップアップ ボックスを作成して、ユーザーが何をする必要があるかを警告します。

于 2012-12-05T18:25:19.087 に答える