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);}}
}