异常---自定义异常类

需求:
自定义一个异常类,某个学生查询自己的成绩为0-100为有效成绩。而当学生查询成绩时超出100或低于0时抛出一个异常。异常由老师抛出。

MyException.java

public class MyException extends Exception {
    MyException() {

    }

    MyException(String Exname) {
     super(Exname);//将throw new MyException("分数必须在0-100之间")显示在控制台
    }

}

Students.java

import java.util.Scanner;

public class Students {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入学生成绩:");
        int score = sc.nextInt();

        Teachers t = new Teachers();
        try {
            t.check(score);
        } catch (MyException e) {
            e.printStackTrace();
        }
    }
}

Teachers.java

public class Teachers {

    public void check(int score)throws MyException {
            if (score > 100 || score < 0) {
                throw new MyException("分数必须在0-100之间");//需要在MyException定义一个构造方法
            } else {
                System.out.println("分数没有问题");
            }
        }
    }

运行结果:
1.输入1-100之间的数值:20
这里写图片描述

2.输入1-100之间的数值:120或者-3
这里写图片描述

  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java 中的异常机制不仅提供了许多现成的异常供我们使用,还允许我们自定义异常来满足特定的需求。自定义异常需要继承自 `Exception` 或其子,并实现相应的构造方法和其他方法。 下面是一个自定义异常的示例: ``` public class MyException extends Exception { public MyException() { super(); } public MyException(String message) { super(message); } public MyException(String message, Throwable cause) { super(message, cause); } public MyException(Throwable cause) { super(cause); } } ``` 在上面的示例中,我们定义了一个名为 `MyException` 的自定义异常,该继承自 `Exception` 。我们实现了四个构造方法,分别对应不同的异常情况。其中,`String message` 参数表示异常的详细信息,`Throwable cause` 参数表示引发异常的原因。 在实际开发中,我们可以根据具体的需求来设计自己的异常。例如,如果我们在编写一个文件读取工具,需要在文件不存在的情况下出一个自定义异常,那么可以定义一个名为 `FileNotExistException` 的异常,并在其中实现相应的构造方法和其他方法。 下面是一个 `FileNotExistException` 自定义异常的示例: ``` public class FileNotExistException extends Exception { public FileNotExistException() { super("文件不存在!"); } public FileNotExistException(String message) { super(message); } public FileNotExistException(String fileName, Throwable cause) { super("文件 " + fileName + " 不存在!", cause); } } ``` 在上面的示例中,我们定义了一个名为 `FileNotExistException` 的自定义异常,该继承自 `Exception` 。我们实现了三个构造方法,分别对应不同的异常情况。其中,第一个构造方法表示文件不存在的默认异常信息,第二个构造方法允许自定义异常信息,第三个构造方法在文件不存在的基础上添加了引起异常的原因。 使用自定义异常,我们可以在需要异常的地方使用 `throw` 关键字自定义异常的实例,例如: ``` public void readFile(String fileName) throws FileNotExistException { File file = new File(fileName); if (!file.exists()) { throw new FileNotExistException(fileName); } // 读取文件内容 } ``` 在上面的示例中,我们在文件不存在的情况下出了一个 `FileNotExistException` 异常的实例,由调用该方法的上层代码进行处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值