在此示例中從不拋出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