アプリ版:「スタンプのみでお礼する」機能のリリースについて

大きさが3の配列に対して,たとえば,
mat[10] = 4 のように代入しようとすると
「OutOfBoundary 云々」というエラーメッセージが出て
プログラムが止まりますよね.

同じように,変数に代入できる範囲を制限できないでしょうか?

次のようなメソッドを作りたいたのですが,
x に代入できる範囲を (-1, 1) に制限したいと思っています.

   public void test(double x) {
      if (x >= -1 && x <= 1) {
         this.x = x;
      } else {
         // ここで 「(1, 1)の範囲じゃなきゃダメ」とう
         // ことを伝えるメッセージを出して,
         // プログラムを止めたい
      }
   }

どうすればよいでしょうか?

A 回答 (3件)

IllegalArgumentException をスローするのが一般的だと思います。


よく分からなければ、「例外」について勉強することをおすすめします。

public void test(double x) {
 if (x < -1 || x > 1) {
  throw new IllegalArgumentException("" + x);
 }
 this.x = x;
}

より詳しくメッセージを表示したいなら
例外のコンストラクタにエラーメッセージを渡してください。
  throw new IllegalArgumentException
   ("引数は(-1,1)の範囲でなくてはいけません")

この回答への補足

これは,目的そのものズバリでいいですね.
ありがとうございます.

補足日時:2006/04/08 00:33
    • good
    • 0

私も例外を投げるようにすればイイと思います。


MyClass は、自分のクラスに変更
----------------------------------------------------------------
   public void test(double x) throws MyClassException {
      if (x >= -1 && x <= 1) {
         this.x = x;
      } else {
throw new MyClassException("(1, 1)の範囲じゃなきゃダメ!");
      }
   }
class MyClassException extends Exception {
public MyClassException() {
super();
}
public MyClassException(String msg){
super(msg);
}
}
    • good
    • 0
この回答へのお礼

ありがとうございます.

お礼日時:2006/04/08 00:33

Exceptionクラスの派生クラス作って


例外を発行すればいいのでは?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています