我是java初学者,正在玩try-catch块。但是,我无法获取try-catch块之外的变量。
以下代码有效。
class factorial{
public static void main(String[] args){
try {
int num = Integer.parseInt(args[0]);
System.out.println(num );
}
catch(Exception e){
System.out.println(e+" Cannot convert arg to int, exiting..");
}
}
}
但以下不起作用。
class factorial{
public static void main(String[] args){
try {
int num = Integer.parseInt(args[0]);
}
catch(Exception e){
System.out.println(e+" Cannot convert arg to int, exiting..");
}
System.out.println(num );
}
}
也尝试过以下方法
class factorial{
public static void main(String[] args){
int num;
try {
num = Integer.parseInt(args[0]);
}
catch(Exception e){
System.out.println(e+" Cannot convert arg to int, exiting..");
}
System.out.println(num );
}
}
但错误说The local variable num may not have been initialized
我怎样才能摆脱这个错误?
您应该在 try 块之前声明该变量(以便它仍然在 try-catch 块之后的范围内),但给它一个初始值:
class factorial{
public static void main(String[] args){
int num = 0;
try {
num = Integer.parseInt(args[0]);
}
catch(Exception e){
System.out.println(e+" Cannot convert arg to int, exiting..");
}
System.out.println(num );
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)