入力がUIを介してユーザーから直接入力されるか、システムから入力されるかによって異なります。
UIを介した入力
無効な入力を処理する方法はユーザーエクスペリエンスの質問です。特定のケースについては知りませんが、一般的にいくつかのオプションがあります。
- ユーザーにエラーを警告し、続行する前にユーザーに修正してもらいます(最も一般的)
- 可能な場合は自動的に有効な範囲に変換しますが、変更をユーザーに警告し、続行する前にユーザーが確認できるようにします。
- 有効な範囲に静かに変換して続行します。
選択は、ユーザーの期待とデータの重要性に依存します。たとえば、Googleはクエリのスペルを自動的に修正しますが、役に立たない変更は問題ではなく、簡単に修正できるため、リスクは低くなります(さらにクエリが変更されたことは結果ページで明確になります)。一方、核ミサイルの座標を入力する場合は、より厳密な入力検証が必要であり、無効なデータのサイレント修正は不要です。したがって、普遍的な答えはありません。
最も重要なことは、入力を修正することでユーザーにとってもメリットがあるかどうかを検討することです。ユーザーが無効なデータを入力するのはなぜですか?誰かがつづりを間違えるのは簡単ですが、なぜ-185の経度を入力するのでしょうか?ユーザーが本当に+175を意味する場合、おそらく+175と入力しているでしょう。無効な経度は単に入力エラーであり、ユーザーは-85などを意味していた可能性が高いと思います。この場合、黙って変換するのは良くなく、役に立たない。あなたのアプリにとって最もユーザーフレンドリーなアプローチは、おそらくユーザーに無効な値を警告し、ユーザーに自分で修正してもらうことでしょう。
APIを介した入力
入力が別のシステムまたはサブシステムからのものである場合、質問はありません。例外をスローする必要があります。他のシステムからの無効な入力をサイレント変換することは絶対にしないでください。システムの他の場所でエラーがマスクされる可能性があるためです。入力が「修正」されている場合、システムの奥深くではなく、UIレイヤーで発生するはずです。