当前位置: 代码迷 >> 综合 >> 【中国大学MOOC】java程序设计-week5-自定义一个异常类,注意其继承自系统的异常类,并要求有构造方法
  详细解决方案

【中国大学MOOC】java程序设计-week5-自定义一个异常类,注意其继承自系统的异常类,并要求有构造方法

热度:70   发布时间:2024-02-26 10:30:09.0

1.题目

Java的异常是比较独特的,它是程序安全稳定的重要措施。本次作业要求自定义异常并使用异常。

(1)自定义一个异常类,注意其继承自系统的异常类,并要求有构造方法;

(2)使用自定义的异常:要求在一个函数中抛出异常,在另一段程序中调用这个函数并捕获异常。

评分标准:

自定义异常类,继承自系统的异常(2分);

异常类有构造方法(2分);

异常类的构造方法中有一个链接内部异常(1分);

有抛出异常(1分);

在抛出异常的方法中有声明throws异常(1分);

有异常捕获和处理(2分);

整体程序比较合理(1分)。

2.题解

/*** 检测输入的学生成绩是否在合理范围,如果,不在合理范围,则抛出异常并解释原因*/public class homework5 {
    public static void main(String[] args) {
    int score = 105;System.out.println("输入该学生成绩为:" + score);try {
    ScoreOfStudent.getScore(score);}catch(Exception e){
    System.out.println("出现错误:"+e);System.out.println("原因:"+e.getCause());}}
}class DataHomeException extends Exception{
    public DataHomeException(String message){
    super (message);}
}
// 1. 定义异常类,继承自系统的异常
// 2. 异常类有构造方法
// 3. 异常类的构造方法中有一个链接内部异常
class ScoreException extends Exception{
    public ScoreException(String message, Exception cause){
    super(message, cause);}
}class DataHome{
    public static void cheekData(int data)throws DataHomeException{
    if(data>=0 && data<=100)System.out.println("检测分数为"+data);elsethrow new DataHomeException("分数超过1-100范围");}
}// 4. 有抛出异常
// 5. 在抛出异常的方法中有声明throws异常
// 6. 有异常捕获和处理
class ScoreOfStudent{
    public static void getScore(int score)throws ScoreException{
    try{
    DataHome.cheekData(score);}catch(DataHomeException e){
    throw new ScoreException("分数不符合要求", e);}}
}
  相关解决方案