タマネギのアーキテクチャを前提として、ユーザーが提供した無効なパラメータに対してビジネスロジック(タマネギの中心にある)で例外をスローすることの利点と欠点は何ですか?
代替はエラーコードになります。
例外とエラーコードの両方のアプローチについて、私は議論を持っていますが、決定するのは難しいと思います。
ビジネスレイヤーは、ユーザーによって提供された値(無効またはその他)を取得しないでください。アプリケーション層はすでに値を検証し、それらをアプリケーションドメインからビジネスドメインに変換しておく必要があります。
別の言い方をすれば、ビジネスレイヤーからスローされた例外がUIレイヤーに跳ね返ってはなりません。これはアプリケーション層でキャッチされ、便利なUI要素に変換されます。
SEやその他の一般的な例外とエラーコードを扱う資料はたくさんあります。この点でビジネスレイヤーについて特別なことは何もありません。アプリケーション全体でできるだけ一貫してエラーを処理するようにしてください。
したがって、アプリケーションの他の部分で検証エラーに例外を使用する場合は、ここで同じことを行ってください。