黑马程序员技术交流社区

标题: 自定义异常类InPutException [打印本页]

作者: 小穿钉    时间: 2015-10-31 21:55
标题: 自定义异常类InPutException
本帖最后由 小穿钉 于 2015-10-31 21:59 编辑

/**
*学生的实际成绩和理想成绩之间的差距,对于一些可能出现的异常,自定义异常类InPutException.
* 定义自定义异常类InPutException,有两个构造函数。无参和有参。
*/
package cn.com.exception;

public class InPutException extends Exception{
        InPutException(){}
        InPutException(String str){
                super(str);
        }
}






作者: 小穿钉    时间: 2015-10-31 22:03
package cn.com.exception;
import java.util.*;
public class DreamScore {
        //随机数当做考试的实际考分
        private int score1=(int)(Math.random()*100)+1;
        //定义输入理想分数的方法,输入不符合要求的就抛出自定义异常。
        public void inPutNum(String str) throws InPutException{
                int value=Integer.parseInt(str);
                if(value<0||value>100){
                        //产生并抛出自定义异常InPutExeption
                        throw new InPutException("输入分数不在0到100之间");
                }else{
                        System.out.println("输入的理想成绩为:"+value+"分");
                        System.out.println("实际成绩为:"+score1+"分");
                        System.out.println("理想成绩与实际成绩的差距为:"+(value-score1)+"分");
                }
        }
}

作者: 小穿钉    时间: 2015-10-31 22:07
package cn.com.exception;
import java.util.*;
public class ExceptionTest {
        public static void main(String[] args){
                String str;
                System.out.println("请输入理想的成绩:");
                Scanner in=new Scanner(System.in);
                str=in.next();
                DreamScore s=new DreamScore();
                //对自定义异常进行捕获处理
                try{
                        s.inPutNum(str);
                }catch(InPutException e){
                        //输出异常对象的描述信息
                        System.out.println("产生的错误信息为:"+e.toString());
                        //显示自定义异常出现的执行堆栈轨迹情况
                        e.printStackTrace();                       
                }
        }
}





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2