正直なところ、私は例外処理の経験があまりありません。なぜなら、怠惰のために例外を処理しない傾向があるからです。それで、ここに非常に基本的な質問があります。
例外処理アプローチを除いて、この状況を達成するための最もクリーンな方法を知りたいです。
コンストラクター内のファイルを読み取るクラス(ConfigManager)があり、コンストラクターパラメーターとして指定されたファイルが正しく構築されるために存在する必要があります。ファイルが存在しない場合は、FileNotFoundExceptionをキャッチし、いくつかのデフォルト値を使用してファイルを作成し、現在使用可能なデフォルトの構成ファイルを使用してConfigManagerオブジェクトの作成を続行します。
ここにいくつかのコードがあります:
class ConfigManager{
ConfigManager(String file){
try{
builder = builderFactory.newDocumentBuilder();
document = builder.parse (new FileInputStream(file));
....
}catch (FileNotFoundException e) {
File configFile = new File (file);
try {
configFile.createNewFile();
BufferedWriter writer = new BufferedWriter(new FileWriter(configFile));
writer.write(this.defaultConfig);
writer.close();
return new ConfigManager(string); //Here's the problem. I can't do that but I need to try build ConfigManager again. How do that?
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
デフォルトの構成ファイルが作成された後、新しいConfigManagerオブジェクトを作成するにはどうすればよいですか?それはそのようなタイプの例外を処理するための厳密な方法ですか?
前もって感謝します