プロが教える店舗&オフィスのセキュリティ対策術

質問いたします。
下記コードの目的は
Textクラス内でTest.txtの読み込み・表示を行います
次にErrorクラス内では
【errorRead() 】Testクラスで発生する可能性があるエラーを記載したError.txtよりその内容を読み取りその内容をArrayListクラスのerrorListオブジェクトに格納しておきます。
【setErrorMsg】ではerrorListに格納された要素から必要なエラー表示を取り出す処理をしています。
質問は各クラスのメソッドで起こったエラーをキャッチした場合【setErrorMsg】メソッドへ対応する要素の番号を渡し、errorListよりgetメソッドを使い要素を取得しTestクラス内のcatch部分でその内容を表示させたいのですが、表示の仕方が良くわかりません。
class Test{
public static void main(String[] args){
try{
メソッドの呼び出し
}catch(FileNotFoundException fnfe){
エラー内容の表示
}catch(IOException ie){
エラー内容の表示
}
}
class abc{
public voidTextRead() throws FileNotFoundException, IOException{
try{
外部ファイルaaa.txtの読み込み、DOS画面への表示処理
}catch(FileNotFoundException){
error.setERROR_MESSAGE(0);
}catch(IOException){
error.setERROR_MESSAGE(1);
}
}
class Error{
public void errorRead() throws FileNotFoundException, IOException{
ArrayList errorList = new ArrayList();
try{
BufferedReader br = new BufferedReader(new FileReader("Error.txt"));
while((errorStr = br.readLine()) !=null){
errorList.add(errorStr);
}
br.close();
}catch(FileNotFoundException fnfe){
setERROR_MESSAGE(3);
}catch(IOException ie){
error.setERROR_MESSAGE(4);
}
public int setErrorMsg(int count){
errorList.get(count);
return count;
}
}
宜しくお願い致します。

A 回答 (1件)

あいかわらず試行錯誤なさっているようですね。



やりたいことは
エラーメッセージの一元管理をファイルでやりたいということなのでしょうか?
だとすると大掛かりな仕組みにし過ぎのような。。。

上の仕組みをやりたいのであれば、
ERRORクラスにエラーコードを渡せばエラーメッセージを返してくれるメソッドを作ってやればいいのではないでしょうか?
public String getMessage(String errorCode){
}

[エラーメッセージの表示]というところで
Errorクラスのインスタンス.getMessage(エラーコード);
とかしてやれば表示されると思いますよ。
ただFileNotFoundExceptionの場合はこのメッセージという風にしたいのであれば、
この例外の種類の判断をどちらのクラスにさせるかっていう設計の問題も入りますね。

この回答への補足

早速のアドバイス有難う御座います。問題点は同じエラーが(FileNotFoundExceptionやIOException)複数のメソッド(同一のクラス内や別のクラスないなど)で定義している場合、『このクラスのこのメソッド』でFileNotFoundExceptionのエラーが発生しました。という風にしたいのですが、そのような場合はどうしたら良いのでしょうか。

class Test{
public static void main(String[] args){
try{
TextReadメソッドの呼び出し //(1)
xyzReadメソッドの呼び出し
}catch(○○Exception ○e){
○○Exceptionの内容を表示
}catch(△△Exception △e){
△△Exceptionの内容を表示 //(4) (6)
}
}
class abc{
try{
TextRead()の実行  //(2)
catch(○○Exception ○e){
○○Exceptionの内容のエラーコードを渡す
}catch(△△Exception △e){
△△Exceptionの内容のエラーコードを渡す //(3)
}
}
class def{
try{
xyzRead()の実行(2)
catch(○○Exception ○e){
○○Exceptionの内容のエラーコードを渡す
}catch(△△Exception △e){
△△Exceptionの内容のエラーコードを渡す
}
}
class Error{
public String getMessage(String errorCode){
} //(5)
}

(1)でTextReadメソッドの呼び出しをし、(2)で実行、エラー発生、(3)でキャッチし(4)へエラーコードを渡す。(5)で対応するエラー内容を取得し(6)でその内容を表示する。

補足日時:2003/11/12 01:54
    • good
    • 0

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