नहीं, Java में ओवरराइडिंग विधि, ओवरराइड की गई विधि द्वारा फेंके गए अपवाद के सुपर-टाइप (पैरेंट अपवाद) को नहीं फेंक सकती। ऐसा करने से संकलन-समय त्रुटि होगी।
उदाहरण
import java.io.FileNotFoundException;
import java.io.IOException;
abstract class Super {
public String readFile(String path) throws FileNotFoundException {
throw new FileNotFoundException();
}
}
public class ExceptionsExample extends Super {
@Override
public String readFile(String path) throws IOException { // IOException, FileNotFoundException का सुपरक्लास है
// method body ......
}
}संकलन त्रुटि
ExceptionsExample.java:13: error: readFile(String) in ExceptionsExample cannot override readFile(String) in Super
public String readFile(String path)throws IOException {
^
overridden method does not throw IOException
1 errorनियम सारांश
- ओवरराइडिंग विधि वही अपवाद या उसके सबटाइप फेंक सकती है।
- यह सुपरटाइप नहीं फेंक सकती।
- यह कोई अपवाद नहीं फेंकने का चयन कर सकती है।