因此,我是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
};


说明:该代码不会实例化该接口,而是实例化实现该接口的匿名内部类。

您还应该了解,尝试在运行时捕获错误时,编译器会在编译时引发错误(在这种情况下为时已晚)。

09-15 11:44