Tapestry を使用して Web GUI をプレゼンテーション レイヤーとして作成しているときに、ドメイン オブジェクトによってスローされるチェック済み例外を処理および処理する方法について、いくつかのジレンマがあります。
メソッドの1つFoo
をスローするドメインオブジェクトがあるとします。FooException
public class Foo {
...
public void fooMethod throws FooException() {
...
}
...
}
ここで、オブジェクトがたとえば で編集されている、というタペストリー ページがあるとBar
しFoo
ますBeanEditor
。
BeanEditor
ここで、オブジェクトを作成するために不正な値が渡されないようにするためにFoo
、次の 2 つの基本的な方法を考えることができます。
@Validate
注釈 を使用したタペストリー フィールドの検証この場合、正規表現を介して、または値を制限するか、または同様のアクションを使用して入力をフィルタリングおよびチェックできる場合、
@Validate
編集中のフィールドの横に気の利いたエラーメッセージが表示され、送信が失敗するため、ユーザーは彼がそこに書いたことと、それを修正する方法を考えてください。ドメインの例外をキャッチし、それに基づいてアクションを実行する
このシナリオでは、できることとできないことに関して、より多くのオプションが提供されると思います。たとえば、 used が入力する必要が
URL
あり、入力中に間違いを犯した場合、URL
コンストラクターは独自の をスローしMalformedURLException
ます。Java コードでその例外をキャッチすることはできますが、私の質問は、次に何をどのように行うべきかということです。
Tapestry は、物事がバラバラになったときにポップアップする例外ウィンドウ以外に、ドメインの例外 (チェック済みおよび/または未チェック) を処理する特別なメカニズムを提供していますか?
この特定の問題を解決する方法に関するパターンはありますか?
IndexOutOfBoundsException
のような一般的で通常の例外と、ドメイン固有の例外との間の境界をどこに引きますFooException
か?
:D