JAVA 异常捕捉机制(3)
要求
完成一个 java application应用程序,接收用户通过键盘不断输入表示某门课程的成绩的字符串(按回车为一个字符串结束),当输入非法数字(输入值小于0或大于100)时提示成绩输入有误,当输入为非数字的字符串时提示输入格式不合法。
思路
- 先创建一个异常类型。可以像下面这样定义自己的异常类:
class MyException extends Exception{
}
- 使用throw抛出异常信息
程序
import java.util.Scanner;
//创建一个异常
class ScoreException extends Exception {
ScoreException (int a) { //异常名及参数
}
public String toString() {
return "成绩输入有误"; //输出字符串
}
}
public class CreateException2 {
public static void main(String args[]) { //主方法入口
while (true) { //循环
Scanner scan = new Scanner(System.in);//创建Scanner对象,等待键盘输入
System.out.println("请输入成绩:");
int a = scan.nextInt(); //将输入的成绩赋给a
try { //要监视的代码块
if (a<0 || a>100)
throw new ScoreException (a ); //若输入分数不合理,抛出异常
else
System.out.println("成绩为:" + a); //否则输出成绩
}
catch (ScoreException exc) { //捕获分数不合理异常
System.out.println(exc);
}
catch (Exception exc) { //捕获格式错误异常
System.out.println("输入格式不合法");
}
}
}
}