2つ以上のコマンドラインパラメータを必要とするプログラムを書いたときに、ユーザーが引数を不足させた場合、どのような例外を投げるべきですか?私は、統合された例外処理を使用したい。"コマンドラインパラメータの例外が十分ではありません"はありますか?
答えて
例外は使用しないでください。
実際、@Jenniferによって回答されたように、ArgumentException
は無効な引数の標準例外です。しかし、これは普通のものではなく、他のプログラマがあなたのコードを読んで期待するものではなく、あなたのプログラムの実行を期待するものではありません。
ArgumentException
は通常、プログラマーエラーを示します。は無効な引数で渡されます。あなたのコードにバグがあることを示しています。有効な引数を渡すか、有効な引数がないことを知っている場合は、呼び出しを避けるようにコードを修正する必要があります。
この場合、これは不可能です。無効な引数をMain
に入力することは、ユーザーエラーであり、プログラマーエラーではなく、ユーザーエラーは別の方法で処理する必要があります。例外をスローすると悪いユーザーエクスペリエンスが生じます。処理されない例外がプログラムをクラッシュさせ、Windowsが解決策をオンラインで検索するようにします。ここで行う必要があるのは、エラーメッセージを出力し、理想的にはゼロ以外のステータスコードで終了することです。その効果を持つ例外タイプはありません。
合意。アプリケーションをウェブサイトと考えると、Exceptionを投げるのは500 Server Errorです。不足しているパラメータとしてコード内の問題を検出した場合、詳細情報を要求するか、または4xxクライアントエラーを返すことができます –
ArgumentException
は無効な引数の標準です。
メソッドに提供された引数の1つが無効な場合にスローされる例外です。
- 1. ASP.NET SQL ServerのConsumePreLoginHandshake十分なメモリがありません例外
- 2. contenttypeへの外部キーは十分ではありませんか?
- 3. CodeIgniter for GoogleのCodeIgniterライブラリが十分ではありません
- 4. ipadフレームの最大サイズが十分ではありません
- 5. gtrendsパッケージで「検索ボリュームエラーが十分ではありません」
- 6. AH01990:PRNGにはまだ十分なエントロピーがありません
- 7. .NET/Entity Framework - System.Data.UpdateException十分正確ではありませんか?
- 8. リソースの例外がありません
- 9. nginxエラー:worker_connectionsで十分ではありません
- 10. android studio ..コードにエラーはありませんが、例外があります
- 11. セレニウム例外:セッションがありません。
- 12. UITableViewはスクロール可能ではありませんが、十分な高さです。
- 13. ループベースの範囲ではcbegin/cendで十分ではありませんか?
- 14. ドロップダウンメニューが十分に開いたままではありません
- 15. "IOException:ディスクに十分な領域がありません。"十分なスペース
- 16. std :: vectorは例外セーフではありませんか?
- 17. SwingWorkerの例外がキャッチ可能ではありません
- 18. テンプレートヘルパーの例外:TypeError:_.mapObjectが関数ではありません
- 19. NbClustのエラー:クラスタに十分なオブジェクトがありません
- 20. ASP.NETコアに例外の例外番号がありません
- 21. 私がキャッチするAggregateExceptionは、例外がありません。
- 22. ノードがありませんElastic Searchの例外があります
- 23. アークの寿命がclone()から十分に長くはありません
- 24. Express&Node.js例外:500 TypeError:fnが関数ではありません
- 25. Java SWT例外: "java.lang.IllegalArgumentException":メニューがPOP_UPではありません
- 26. PostSharp例外スタックトレースが完全ではありません
- 27. エラーメッセージ "XcodeだけではSierraだけでは十分ではありません"
- 28. Wordpress - クローンデータベースに十分な権限がありません
- 29. JPAマッピングエラー - IDクラスに十分なメタデータがありません
- 30. certbot-auto:クライアントに十分な権限がありません
なぜ例外ですか?プログラムの使い方を書いて、0に等しくない終了コードを与えてください。呼び出し元のアプリケーションから例外を実際に処理することはできません。後でプログラムを終了する予定だったので、例外の必要はありません – Icepickle
人間がプログラムを使用すると予想される場合は、メッセージを出力して、ユーザーが期待されるパラメータを提供できるようにすることができます。 –
ほとんどのコマンドラインプログラム私は、パラメータが不十分であるか、パラメータが期待どおりでない場合に、 "help"ファイルを出力します。 – vipersassassin