• ベストアンサー

UMLでの例外処理

UML(特にシーケンス図)の作成時に 例外処理をどのように記述すればよいかわかりません。 try-catchをシーケンス図上でどのように記述すればよろしいでしょうか? よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • hitomura
  • ベストアンサー率48% (325/664)
回答No.1

個人的な考えですが、「記述しようとしている処理の流れの中で重要な分岐となる場合のみ記述する」が正解なような気がします。 もっともコードに近い記述ができるシーケンス図でも、例外処理のような些末なことをすべて記述するようにはできていなくて、無理やりすべて記述しても非常に読みにくくなると思うためです。 たとえば、DBから何らかの条件にあてはまるデータの一覧を取得して表示するという処理を記述する場合、実際のコードではDB関連の処理でtry-catchが出てくるはずですが、私ならそれらについては図中に記述する必要はないと考えます。 そのかわりにデータベース処理で例外が発生した時の標準的な対処法をコメントとして記述するにとどめるか、やるとしても「データベース処理中に例外が発生した時」のシーケンス図を記述してコメントに「DB処理時の例外処理はシーケンス図○○を参照のこと」と記述します。 なぜなら、その例外処理は確認しようとする処理の流れとは関係ないことで、そのすべてが図中に記述されたら本来の処理フローは例外処理のフローがノイズとなって読み取りにくくなるからです。 ただし、検索結果がないという例外が発生するような場合は、複合フラグメントを使ってその例外が発生した場合としない場合に分けて処理を記述します。 なぜならその例外処理は本来の処理フローの一部であり、その記述を抜かすと全体の処理フローを表現しているといえなくなるためです。 まあ、上はあくまでも個人的な意見で、例外処理はこのように書くというイディオムがあるのかもしれませんが、あいにく私はそれを知りません。他の回答者様の意見で参考になるものがあれば取り入れたいと思っております(チラッ→ほかの回答者様)。

すると、全ての回答が全文表示されます。

関連するQ&A