in the following statement, if throw T1 is replaced with throw t, there will be a compilation error. Why is must be caught or declared to be thrown,?
try{
FileInputStream fis = new FileInputStream(file);
Throwable t = null;
try{
fis.read();
}catch (Throwable t1){
t = t1;
throw t1;
} finally{
...
}
} catch(Exception e){
...
}