Ich versuche, meine eigene Exception-Klasse, der einfachste Weg, und das ist zu definieren, was ich bekomme:Wie definiert man benutzerdefinierte Ausnahmeklasse in Java, der einfachste Weg?
cannot find symbol: constructor MyException(java.lang.String)
ich das Gefühl hatte:
public class MyException extends Exception {}
public class Foo {
public bar() throws MyException {
throw new MyException("try again please");
}
}
Das, was Compiler sagt Java ist dass dieser Konstruktor von java.lang.Exception
geerbt werden muss, oder?
der Standardkonstruktor IS geerbt. – vulkanino
@vulkanino: Nein. Der Standardkonstruktor wird vom Compiler für jede Klasse hinzugefügt, die keinen eigenen Konstruktor definiert. Wenn Sie einen expliziten Konstruktor definieren, erhalten Sie nicht den Standard, selbst wenn die Oberklasse diesen hat, und wenn Ihre Klasse keinen Konstruktor hat, erhalten Sie den Standard, selbst wenn die Oberklasse diesen nicht hat. –
'Wenn Ihre Klasse keinen Konstruktor hat, erhalten Sie den Standard auch dann, wenn die Oberklasse ihn nicht hat 'Der letzte Teil ist unmöglich, außer die Oberklasse hat einen Standardkonstruktor, der für diese Klasse zugänglich ist (geschützt oder paketgeschützt) . Andernfalls müssen Sie explizit einen der übergeordneten Konstruktoren aufrufen, sonst schlägt die Kompilierung fehl. –