永远不会在相应的try语句的主体中引发异常
我在Java中进行异常处理时遇到问题,这是我的代码。尝试运行以下行时出现编译器错误:throw new MojException("Bledne
dane");。错误是:
永远不会在相应的try语句的主体中引发MojException异常
这是代码:
public class Test { public static void main(String[] args) throws MojException {
// TODO Auto-generated method stub
for(int i=1;i<args.length;i++){
try{
Integer.parseInt(args[i-1]);
}
catch(MojException e){
throw new MojException("Bledne dane");
}
try{
WierszTrojkataPascala a = new WierszTrojkataPascala(Integer.parseInt(args[0]));
System.out.println(args[i]+" : "+a.wspolczynnik(Integer.parseInt(args[i])));
}
catch(MojException e){
throw new MojException(args[i]+" "+e.getMessage());
}
}
}
}
这是MojException的代码:
public class MojException extends Exception{ MojException(String s){
super(s);
}
}
谁能帮我这个?
回答:
try语句中的catch块需要 捕获try {}
-block 内的代码 抛出的异常(或该异常的超类)。
try { //do something that throws ExceptionA, e.g.
throw new ExceptionA("I am Exception Alpha!");
}
catch(ExceptionA e) {
//do something to handle the exception, e.g.
System.out.println("Message: " + e.getMessage());
}
您想做的是这样的:
try { throw new ExceptionB("I am Exception Bravo!");
}
catch(ExceptionA e) {
System.out.println("Message: " + e.getMessage());
}
这将导致编译器错误,因为您的Java知道您正在尝试捕获永远不会发生的异常。因此,您将获得:exception ExceptionA is never
thrown in body of corresponding try statement。
以上是 永远不会在相应的try语句的主体中引发异常 的全部内容, 来源链接: utcz.com/qa/415314.html