假设我有一个类,要求是“更改下面的代码中抛出checked异常,如果‘书房’为0,并更改功能,捕获了异常”。
public class divide {
void divide(int num, int den){
System.out.println(""+(num/den));
}
void fun(){
divide(4,2);
}
}
下列哪一个是抛出异常的正确方法是什么?
选项1:
void divide(int num, int den) throws Exception{
if(den==0){
throw new Exception("Dividebyzero");
}
System.out.println(""+(num/den));
}
void fun(){
try {
divide(4,2);
} catch (Exception e) {
}
}
选项2://我觉得这是正确的
void divide(int num, int den){
if(den==0){
throw new RuntimeException("Dividebyzero");
}
System.out.println(""+(num/den));
}
void fun(){
try {
divide(4,2);
} catch (RuntimeException e) {
}
}
方案3:
void divide(int num, int den) throws Exception{
if(den==0){
throw new RuntimeException;
}
System.out.println(""+(num/den));
}
void fun(){
try {
divide(4,2);
} catch (Exception, RuntimeException) {
}
}
这个问题来自的Java的运动之一。 我已经学会了Java的几年,但我也有点困惑的尝试捕捉抛出。 就个人而言,我认为,选择2是正确的,因为我们只抛出异常一次,还是我错了?