• ベストアンサー

例外処理の型変更について

自作の例外を作り、メッセージを2つ渡してexception処理したいのですが、それは可能なのでしょうか? public class TestException extends Exception { public TestException(String message) { super(message); } } こんなExceptionを作ってみたのですが、message1とmessage2を2つ出力したいのです。

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

  • ベストアンサー
回答No.2

呼び出し元がどのように欲しがっているか確認し、 その通りに返すか、相談しないといけませんね。 >エラーコードとエラーメッセージをExceptionにのせようと思っています。 >呼び出し元よりメッセージを分けてExceptionを出力して欲しいとの事。 を単純に考えてみました。 ↓な感じ public class TestException extends Exception {   private String msg = null;   private String cd = null;   public TestException(String message,String code) {     super(code+":"+message);     //↑これやるならgetMessage()をオーバーライドしなくても良いかも     msg = message;     code = cd;   }      public String getErrorMessage(){     return msg;   }      public String getErrorCode(){     return cd;   }      //オーバーライド(コンストラクタでsuper(code+":"+message)しない場合   public String getMessage(){     return code+":"+msg;   } }

take_july
質問者

お礼

なるほど。。 例外クラスをなんか特別視してました。 普通にgetメソッド定義できるんですね。 これです。ありがとうございました。

その他の回答 (1)

回答No.1

2つのメッセージをどう扱うかにもよりますが、 単に連結するだけなら、 public TestException(String message1,String message2) {   super(message1+message2); } で良いのでは? 何か違う扱いをしたいのであれば、それを補足して下さい。

take_july
質問者

補足

エラーコードとエラーメッセージをExceptionにのせようと思っています。 最初pcbeginnerさんの回答の通り、カンマで区切って返すように考え、そのようなExceptionを出力する予定ですとクラスを渡し回答したのですが、 呼び出し元よりメッセージを分けてExceptionを出力して欲しいとの事。 自作したExceptionのクラスならどうにでも出来るはずという事でしたが、 本当に出来るのかと思い質問させていただきました。 Exceptionクラス等を継承しないでとか出来る方法はあるのでしょうか?

関連するQ&A