在运行以下程序时,可以进行断点调试... 看代码走完的一整个流程
package 异常处理1;
import java.util.InputMismatchException;
import java.util.Scanner;
public class ExceptionTest {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
//input(sc);
double score = tryCatchFinally(sc);
System.out.println("你的分数: "+score);
}
private static double tryCatchFinally(Scanner sc) {
// TODO Auto-generated method stub
double score = 0.0d;
try {
System.out.println("请输入你的分数:");
score = sc.nextDouble();
return score;
}catch (InputMismatchException e) {
e.getMessage();
}finally {
//finally 语句 总是执行 无论有没有捕获到异常...
// finally 的执行顺序 在 return 语句之前...
if(sc != null) {
sc.close();
System.out.println("关闭扫描器");
}
}
return score;
}
private static void input(Scanner sc) {
try {
//Scanner sc = new Scanner(System.in);
System.out.println("请输入你的姓名:");
String name = sc.next();
System.out.println("name->" + name);
System.out.println("请输入你的考试科目:");
String subject =sc.next();
System.out.println("请输入你的分数");
double score = sc.nextDouble();
System.out.println("姓名: "+name+", 科目: "+subject+", 分数: "+score);
} catch (InputMismatchException e) {
// TODO: handle exception
System.out.println("数据输入的格式不正确!!!");
//把扫描器信息读空...
sc.nextLine();
input(sc);
}
}
}