人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

お世話になっております。JAVAに関して
質問があります。
ある書籍に、「サブクラスのメソッドがスローする例外は、スーパークラスのメソッドがスローする例外と同じか、そのサブクラスにする」とあります。

この、「そのサブクラスにする」という所が、サブクラスAのメソッドがスローする例外を、スーパークラスのサブクラスBにする、と解釈(?)しましたが、よく意味も分からないし、なぜそうするのかも分かりません。

正しい解釈をご存知の方がおりましたら、その意味と理由をご教授下さいますようお願いします。

●質問者: mimio17
●カテゴリ:コンピュータ 学習・教育
✍キーワード:Java サブクラス スロー スーパークラス メソッド
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● くまっぷす
●25ポイント

http://www.lcv.ne.jp/~kenmio/yomimono/yomimono21.htm

楽しいJava入門 例外

ここに書いてある例(親の愛…変な例だなあ)と同じことでしょう。

「サブクラスのメソッドがスローする例外は親クラスのスローする例外と同じかその*例外の*サブクラスにする。」

でしょう。

上記の例はまさに「例外(Exception)」のサブクラス定義です。

サブクラスで特有の例外を使いたい場合に使います。で、親がすでに拡張目的でExceptionのサブクラスを例外として使っていた場合は同じものかそのまたサブクラスを使うということ。

◎質問者からの返答

ありがとうございます。

今、体調不良でしっかり目を通せない状態

ですが、親(スーパークラス)・兄(サブクラスA)・妹(サブクラスB)間での、サブクラスの”訴え”を親や兄がキャッチするのがなんとなく見えました。

やはりこういった”仕様”なのでしょうか。

うまく解釈できなくてごめんなさい。


2 ● eofl
●25ポイント

http://www.dummy.com/

Dummy at Dummy.com - Don't be a Dummy! Get the Right Business Executive Gifts and Employee Gifts

urlはダミーです。


サブクラスにするのは例外クラスです。

つまりサブクラスは例外をスローする場合、スーパークラスのものと同じ例外か、その例外をサブクラス化したものをスローしたほうがいいと言いたいわけです。


たとえば、そのサブクラスの参照をそのスーパークラスを受け取る関数に渡し、その関数内で例外の発生する処理をしたときを考えてください。

もし、関数がスーパークラスのスローする例外によって特別な処理をしていた場合、まったく違った例外をスローされてはたまりません。

◎質問者からの返答

ありがとうございます。

サブクラスのスローする例外を、スーパークラスが持つ例外と一致するものにするか、その例外を更にサブクラス化したものにするのが良い、ということでしょうか。

>たとえば、そのサブクラスの参照をそのスーパ

>ークラスを受け取る関数に渡し、その関数内で

>例外の発生する処理をしたときを考えてくださ

>い。

>もし、関数がスーパークラスのスローする例外

>によって特別な処理をしていた場合、まったく

>違った例外をスローされてはたまりません

「スーパークラスが」ではなくて「スーパークラスを」でよいのですよね?

無知でごめんなさい、「全く違った例外をスロー

・・」は対処法がありそうな。。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ