Porque este código compila…
[code]public class Example1
{
public Example1()
{
Example1Sub exsub = new Example1Sub();
try
{
exsub.test();
}
catch ( Exception e )
{
e.printStackTrace();
}
}
void test() throws IOException
{
System.out.println("In Example1");
throw new IOException();
}
}
class Example1Sub extends Example1
{
void test()
{
System.out.println(“In Example1Sub”);
}
}[/code]
e esse não…
[code]public class Example1
{
public Example1()
{
Example1Sub exsub = new Example1Sub();
try
{
exsub.test();
}
catch ( IOException e )
{
e.printStackTrace();
}
}
void test() throws IOException
{
System.out.println("In Example1");
throw new IOException();
}
}
class Example1Sub extends Example1
{
void test()
{
System.out.println(“In Example1Sub”);
}
}[/code]
Porque o compilador reclama que o corpo do try lança exeção para “IOException” e não reclama para “Exception”?