2017-05-01 20 views
1

2つ以上のコマンドラインパラメータを必要とするプログラムを書いたときに、ユーザーが引数を不足させた場合、どのような例外を投げるべきですか?私は、統合された例外処理を使用したい。"コマンドラインパラメータの例外が十分ではありません"はありますか?

+8

なぜ例外ですか?プログラムの使い方を書いて、0に等しくない終了コードを与えてください。呼び出し元のアプリケーションから例外を実際に処理することはできません。後でプログラムを終了する予定だったので、例外の必要はありません – Icepickle

+0

人間がプログラムを使用すると予想される場合は、メッセージを出力して、ユーザーが期待されるパラメータを提供できるようにすることができます。 –

+4

ほとんどのコマンドラインプログラム私は、パラメータが不十分であるか、パラメータが期待どおりでない場合に、 "help"ファイルを出力します。 – vipersassassin

答えて

3

例外は使用しないでください。

実際、@Jenniferによって回答されたように、ArgumentExceptionは無効な引数の標準例外です。しかし、これは普通のものではなく、他のプログラマがあなたのコードを読んで期待するものではなく、あなたのプログラムの実行を期待するものではありません。

ArgumentExceptionは通常、プログラマーエラーを示します。は無効な引数で渡されます。あなたのコードにバグがあることを示しています。有効な引数を渡すか、有効な引数がないことを知っている場合は、呼び出しを避けるようにコードを修正する必要があります。

この場合、これは不可能です。無効な引数をMainに入力することは、ユーザーエラーであり、プログラマーエラーではなく、ユーザーエラーは別の方法で処理する必要があります。例外をスローすると悪いユーザーエクスペリエンスが生じます。処理されない例外がプログラムをクラッシュさせ、Windowsが解決策をオンラインで検索するようにします。ここで行う必要があるのは、エラーメッセージを出力し、理想的にはゼロ以外のステータスコードで終了することです。その効果を持つ例外タイプはありません。

+0

合意。アプリケーションをウェブサイトと考えると、Exceptionを投げるのは500 Server Errorです。不足しているパラメータとしてコード内の問題を検出した場合、詳細情報を要求するか、または4xxクライアントエラーを返すことができます –

1

ArgumentExceptionは無効な引数の標準です。

メソッドに提供された引数の1つが無効な場合にスローされる例外です。

関連する問題