import java.io.*;
public class finalize{
public static void main(
String args[]){
try{
File file = new File("main_output.txt");
FileWriter f = new FileWriter(file);
for(int i=0;i<1000000;i++){
f fobj = new f();
fobj = null;
}
f.write("Main Sucessfully");
f.flush();
f.close();
}catch(Exception e){
e.printStackTrace();
}
}
public void finalize(){
try{
PrintWriter pr = new PrintWriter(new FileOutputStream("finalize_output.txt",true));
try{
int k=10;
int i = k/0;
}catch(Exception e){
e.printStackTrace(pr);
}
pr.write("Finalize Sucessfully");
pr.flush();
pr.close();
}catch(Exception e)
{
e.printStackTrace();
}
}
}
I have
test above program
Got Result:
main_output.txt:
Main Sucessfully
finalize_output.txt:
java.lang.ArithmeticException: / by zero
at f.finalize(f.java:44)
at java.lang.ref.Finalizer.invokeFinalizeMethod(Native Method)
at java.lang.ref.Finalizer.runFinalizer(Unknown Source)
at java.lang.ref.Finalizer.access$100(Unknown Source)
at java.lang.ref.Finalizer$FinalizerThread.run(Unknown Source)
Finalize Sucessfully
(Many Many times....)
which Thraed generate this error main ot another one(garbaze Collector Thraed) ???