質問いたします。
下記コードの目的は
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;
}
}
宜しくお願い致します。
No.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)でその内容を表示する。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- Java java final 1 2022/06/10 22:49
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- PHP PHP一覧表示した項目にリンクをはりたい 1 2023/07/12 17:08
- Java JavaのSingletonパターンのprivateの持つ意味が分かりません。 5 2022/06/12 10:38
- C言語・C++・C# C# で、あるフォルダー内にあるすべてのテキストファイルを別のフォルダーにコピーする。 4 2022/11/21 13:23
- Java java 飾子を付けること(public static・・・) ・コンソールへの出力処理はmainメ 2 2022/06/16 19:34
- PHP PHPの構文で間違えが分からない 5 2022/07/11 16:38
- オープンソース Vue+Laravelのデザインテンプレートのサンプルが起動できない 1 2022/05/18 21:52
- Ruby 【JAVA】数字をひし形に出力するプログラムについて 2 2022/07/11 23:32
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Java リフレクションについて
-
C#にて別クラスの関数を使いたい
-
a href="..." とServlet
-
テーブルの1レコードを継承し...
-
import と extends について
-
クラス間でのデータ参照
-
java-別クラスの変数の使い方を...
-
C# インターフェイスの実装
-
関数内の変数に<summary>コメン...
-
範囲外の数値を代入したらエラ...
-
親クラスから子クラスへアクセス。
-
C++でfriendクラスにしているの...
-
javaの配列について質問です。
-
構造 他のクラスの構造体を別...
-
継承したクラス側のクラス名の取得
-
C#のクラスライブラリでメッセ...
-
SwingでgetContentPaneのエラー...
-
無名パッケージからのインポート
-
アップキャスト、ダウンキャス...
-
Java
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
関数内の変数に<summary>コメン...
-
クラス間でのデータ参照
-
c++,ある関数のクラスから別の...
-
範囲外の数値を代入したらエラ...
-
C#にて別クラスの関数を使いたい
-
C#でほかのファイルにある自作...
-
C++でfriendクラスにしているの...
-
java-別クラスの変数の使い方を...
-
親クラスから子クラスへアクセス。
-
構造 他のクラスの構造体を別...
-
ひとつのファイルにクラスは1つ?
-
Java
-
import と extends について
-
継承したクラス側のクラス名の取得
-
Java リフレクションについて
-
C#のクラスライブラリでメッセ...
-
SwingでgetContentPaneのエラー...
-
アップキャスト、ダウンキャス...
-
C# インターフェイスの実装
-
visual studioのデザイナ画面で...
おすすめ情報