3

FTP(AUTH TSL)フレームワークをC#で作成する必要があります。私はフレームワークを書くのが得意ではありません。
たとえば、ファイルが存在することを証明し、存在しない場合はどうすればよいですか?

  • フレームワークを使用するプログラマーに例外をスローしますか?
  • 例外をスローせずにExceptionMessage(Console.WriteLine())を出力しますか?

この場合、プロとは何ですか?

4

3 に答える 3

4

実際には幅広い質問ですが、途中であなたを導くためのいくつかの手がかりがあります:

  1. Console.WriteLine()フレームワークでそのようなものを使用しないでください。
  2. のようなメソッドのFramework.FileExists場合、ファイルが存在しない場合は、単に値を返しfalseます。これがブール値の戻り値の本質です。それはより意味論的です。
  3. 問題が発生した操作の場合は、カスタムまたは事前定義された例外をスローします。たとえば、引数が必要で、メソッドにnullが渡されていないことを確認したい場合は、メソッドの本体で引数を確認し、nullの場合はをスローしArgumentNullExceptionます。
于 2012-06-06T11:56:41.633 に答える
1

「エラーコード」を戻り値として返すには、列挙型を使用するのが一般的です。アップロードメソッドが返される可能性があります

public enum UploadResult
{
    Success,
    PasswordInvalid,
    UserInvalid,
    FileNotFound,
    HostNotFound
}

フレームワークのユーザーは、次のように簡単に使用できます。

if (Ftp.Upload(User, Pass, Host, File) != UploadResult.Success)
{
    MessageBox.Show("Sorry, something went terribly wrong.");
}

または、より具体的な理由を確認して、再試行してください。

編集:そして、あなたの元の投稿への私のコメントに書かれているように:本当に予期しないことが起こった場合、またはユーザー入力が明らかに無効である場合は、例外をスローします。

于 2012-06-06T12:45:23.987 に答える
0

フレームワークのユーザーには何が起こったのかが明らかなので、例外をスローします。しかし、私は自分の例外クラスを作成します。

ユーザーがリターンコードを知って解釈する必要があるため、リターンコードは使用しません。エラーが発生する可能性があります。

于 2012-06-06T11:55:44.337 に答える