我们可以在main方法中使用不同的消息捕获两次异常类型吗?我想打印出不同的警告。
try {
// some code
} catch (NumberFormatException e) {
System.out.println("Wrong input!");
} catch (NumberFormatException e) {
System.out.println("No valid number!");
}
答案 0 :(得分:3)
您无法两次捕获相同的异常类型(如NumberFormatException
)。我建议你抓住它一次但是在catch块中,你会打印两条消息。
答案 1 :(得分:0)
你不能两次捕获同样的异常。
您可以做的是在代码中抛出自定义异常,并在需要不同行为时捕获它。
try{
...
throw new YourException(yourMessage);
}catch(YourException e){
}
答案 2 :(得分:0)
据我所知,您希望为您的例外显示正确的消息:
try {
// some code
} catch (NumberFormatException e) {
System.out.println(e.getMessage());
}
答案 3 :(得分:0)
你不能两次捕获同样的异常。
考虑以下示例,
try {
} catch (FileNotFoundException e) {
System.err.println("FileNotFoundException: " + e.getMessage());
throw new SampleException(e);
} catch (IOException e) {
System.err.println("Caught IOException: " + e.getMessage());
}
下面,
两个处理程序都会打印错误消息。第二个处理程序没有其他功能。通过捕获未被第一个处理程序捕获的任何IOException,它允许程序继续执行。
第一个处理程序除了打印消息外,还会抛出用户定义的异常。