1
處理請看下面的代碼IOException異常在多個方法
public class foo {
public static void main(String[] args) {
MyClass mc = new MyClass();
mc.read();
}
}
和
public class MyClass {
private BufferedWriter verb;
private String vFile;
MyClass()
{
try {
verb = new BufferedWriter(new FileWriter(vFile));
} catch(IOException e) {
System.out.println("Internal error1");
System.out.println(e.getMessage());
}
}
public void read()
{
// read a file and create an array
verb.write("Array created"); // ERROR
}
}
正如你可以看到write
不放在一個try..catch
塊。我可以寫一個捕獲,但MyClass
有很多方法和verb.write
被嚴重使用。我也可以寫public void read() throws IOException
來拋出異常給調用者,main()
。不過,我必須將mc.read()
放在try..catch
區塊中。由於MyClass有很多方法,因此我必須將它們全部放在main()
的catch塊中。
那麼,有沒有更好的方法來處理?是否有可能將與verb
相關的所有異常重定向到定義了try..catch的構造函數MyClass()
?
OT:爲什麼地球上您已經閱讀名爲***的方法***,實際上則正好相反:*** ***寫? ? –
「重定向到構造函數」?你什麼意思?構造函數總是首先執行,而您的'read'方法將在稍後執行。你怎麼想像你可以將之後發生的事情「重定向」到之前發生的事情?時間旅行? –
請參閱更新後的帖子。 'read()'讀取輸入文件,然後在詳細文件中寫入消息。 – mahmood