我想尝试抓住java,
当我写了捕捉部分时,它问我一个参数,
我想要使用的参数是ValueError(在python中的含义)
示例:
try {
System.out.print("Write your weight: ");
weight = input.nextDouble();
}
catch (ValueError){
System.out.print("You must write your weight in numbers: ");
weight = input.nextDouble();
}
答案 0 :(得分:1)
如果您使用某些IDE(如intllij),当您使用Java时,它会建议您应该捕获哪些异常以及在这种情况下或当您知道应该捕获哪些异常时(假设ExceptionType1
和ExceptionType2
)你的代码将是:
try {
//some code with multiple exceptions
} catch (ExceptionType1 ex){
//some code to handle your exceptions
} catch (ExceptionType2 ex){
//some code to handle your exceptions
} ....
但总的来说,如果你不知道你有什么例外,或者你不想处理所有这些例外,你可以抓住这样的一般Exception
:
try {
//some code with multiple exceptions
} catch (Exception ex){
//some code to handle your exceptions
}
答案 1 :(得分:1)
nextDouble
的{{1}}方法(我假设是Scanner
的类型)可以抛出一些例外。您只能捕获可能返回的异常类型。如果您特别感兴趣的话,如果有人输入了错误答案(例如'是'而不是数字),那么您可以抓住input
。如果您只是想捕获任何错误,那么您可以捕获更通用的InputMismatchException
。在任何一种情况下,您的Exception
语句都必须将异常类型和变量名称命名为:
catch
或
catch (InputMismatchException ex) { ... }
这样,您可以通过调用catch (Exception ex) { ... }
变量上的方法来执行异常操作。
此外,您只需再次尝试即可显示捕获。如果用户输入一次错误值,则可能会有效,但如果用户第二次输入错误值则不行。再次尝试的更好方法是:
ex
这允许在输入有效值之前询问问题。