- ベストアンサー
例外処理の型変更について
自作の例外を作り、メッセージを2つ渡してexception処理したいのですが、それは可能なのでしょうか? public class TestException extends Exception { public TestException(String message) { super(message); } } こんなExceptionを作ってみたのですが、message1とmessage2を2つ出力したいのです。
- みんなの回答 (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; } }
その他の回答 (1)
- pcbeginner
- ベストアンサー率46% (261/560)
2つのメッセージをどう扱うかにもよりますが、 単に連結するだけなら、 public TestException(String message1,String message2) { super(message1+message2); } で良いのでは? 何か違う扱いをしたいのであれば、それを補足して下さい。
補足
エラーコードとエラーメッセージをExceptionにのせようと思っています。 最初pcbeginnerさんの回答の通り、カンマで区切って返すように考え、そのようなExceptionを出力する予定ですとクラスを渡し回答したのですが、 呼び出し元よりメッセージを分けてExceptionを出力して欲しいとの事。 自作したExceptionのクラスならどうにでも出来るはずという事でしたが、 本当に出来るのかと思い質問させていただきました。 Exceptionクラス等を継承しないでとか出来る方法はあるのでしょうか?
お礼
なるほど。。 例外クラスをなんか特別視してました。 普通にgetメソッド定義できるんですね。 これです。ありがとうございました。