【发布时间】:2018-04-08 07:55:04
【问题描述】:
在下面的程序中哪里可以放置try catch来处理Class Cast Exception?
Class Animal { }
Class Dog extends Animal { }
Class Cat extends Animal { }
Class MainRunner {
public static void main(String args[]) {
System.out.println("Main method started");
Scanner sc = new Scanner(System.in);
System.out.println("Enter the key value");
int key = sc.nextInt();
Animal a = null;
switch (key) {
case 1 : a = new Cat(); break;
case 2 : a = new Dog(); break;
default : System.out.println("invalid choice");
return;
}
Dog d = (Dog)a;
System.out.println("main method ended");
}
}
Cat类没有向下转型,所以当输入key值为1时,会抛出Class cast Exception。如何使用 try catch 来处理它?在哪里插入 try catch 以便处理?
【问题讨论】:
-
能否请您使用java代码美化器正确缩进代码?
-
为什么要处理异常?通过使用
instanceof检查其类型,您可以阻止它。但是如果你必须使用try-catch,那么你能解释一下你在正常使用时遇到了什么问题吗(我们使用try to wrap section会抛出异常;catch提供处理方式)?