在此示例中从不抛出IO异常。为什么在此代码中永远不会抛出IOException
public static void main(String[] args){
double r = 0;
System.out.println("Please enter radius of a circle");
try{
Scanner sc = new Scanner(System.in);
r = sc.nextDouble();
}catch(NumberFormatException exe){
System.out.println("Inpvalid radius value");
}catch(IOException exe){
System.out.println("IO Error :" + exe);
}
double per = 2 * Math.PI *r;
System.out.println(per);
}
在下面的程序中,它没有显示任何错误。 公共静态无效的主要(字串[] args){
int radius = 0;
System.out.println("Please enter radius of a circle");
try
{
//get the radius from console
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
radius = Integer.parseInt(br.readLine());
}
//if invalid value was entered
catch(NumberFormatException ne)
{
System.out.println("Invalid radius value" + ne);
System.exit(0);
}
catch(IOException ioe)
{
System.out.println("IO Error :" + ioe);
System.exit(0);
}
double perimeter = 2 * Math.PI * radius;
System.out.println("Perimeter of a circle is " + perimeter);
我不明白为什么它正在发生。由于两者都做同样的目的,为什么不能先代码抛出IOException