Hallo Forum,
in meiner Klausur für Java habe ich folgende Aufgabe für Exceptions bekommen, die ich leider nicht lösen konnte. Bei der Klausureinsicht
Gegeben ist Code:
Fügen Sie an der Stelle 1 jeweils folgende Ausdrucke. Welche Aufruf(e) lassen sich kompilieren? Warum?
1. void eat(){}
2. void eat() throws Exception{}
3. void eat(int x) throws Exception{}
4. void eat() throws FileNotFoundException{}
In der Klausureinsich wurde mir das so erklärt:
1. void eat(){}
Kompilierbar, weil keine Exceptions geworfen werden
2. void eat() throws Exception{}
Kompiliert nicht, weil Exception Oberklasse für IOException ist
3. void eat(int x) throws Exception{}
Kompiliert, weil die Signatur anders ist (int x)
4. void eat() throws FileNotFoundException{}
Kompilierbar, weil FileNotFoundException spezielle Exception von IOException ist
Ist es korrekt?
Ich habe das ganze in Eclipse ausprobiert und da lässt sich nur "void eat(){}" kompilieren.
Danke!
Capri
in meiner Klausur für Java habe ich folgende Aufgabe für Exceptions bekommen, die ich leider nicht lösen konnte. Bei der Klausureinsicht
Gegeben ist Code:
Fügen Sie an der Stelle 1 jeweils folgende Ausdrucke. Welche Aufruf(e) lassen sich kompilieren? Warum?
1. void eat(){}
2. void eat() throws Exception{}
3. void eat(int x) throws Exception{}
4. void eat() throws FileNotFoundException{}
Code:
import java.io.*;
class Food{
void eat() throws IOException{ }
}
public class Pizza extends Food{
public static void main(String[] args){
new Pizza().eat();
}
}
// Stelle 1
}
In der Klausureinsich wurde mir das so erklärt:
1. void eat(){}
Kompilierbar, weil keine Exceptions geworfen werden
2. void eat() throws Exception{}
Kompiliert nicht, weil Exception Oberklasse für IOException ist
3. void eat(int x) throws Exception{}
Kompiliert, weil die Signatur anders ist (int x)
4. void eat() throws FileNotFoundException{}
Kompilierbar, weil FileNotFoundException spezielle Exception von IOException ist
Ist es korrekt?
Ich habe das ganze in Eclipse ausprobiert und da lässt sich nur "void eat(){}" kompilieren.
Danke!
Capri