因此,我是Java的新手,我正在尝试使用try,catch和finally功能。就我的有限理解而言,try-catch块允许我处理异常,而不是编译器抛出无法返回执行的错误。这是正确的吗?另外,我的程序似乎无法正常工作,因为编译器会抛出“ Extracur是抽象的,无法实例化!”在编译过程中。我如何获取它来显示错误消息(并执行我的finally块)?
try {
extracur student1 = new extracur();
} catch (InstantiationException e) {
System.out.println("\n Did you just try to create an object for an interface? Tsk tsk.");
} finally {
ReportCard student = new ReportCard("Progress Report for the year 2012-13");
student.printReportCard();
}
PS- Extracur是一个接口。
最佳答案
接口永远不能直接实例化。
extracur student1=new extracur(); // not possible
并且您应该大写接口名称。您需要:
Extracur student1 = new Extracur() {
// implement your methods
};
说明:该代码不会实例化该接口,而是实例化实现该接口的匿名内部类。
您还应该了解,尝试在运行时捕获错误时,编译器会在编译时引发错误(在这种情况下为时已晚)。