【java基础:throw】抛出异常、自定义异常类

红太狼 2024-04-03 09:09 252阅读 0赞

在java中允许一个函数内,如果有异常,内部不进行处理(try-catch),可以使用throw关键字抛出异常,需要在方法上声明。

Person类

  1. public class Person {
  2. private String name;
  3. private int age;
  4. public String getName() {
  5. return name;
  6. }
  7. public void setName(String name) {
  8. this.name = name;
  9. }
  10. public int getAge() {
  11. return age;
  12. }
  13. //throws在方法上申明改方法抛出异常
  14. public void setAge(int age) throws AgeException{
  15. if (age<0||age>120){
  16. //逻辑错误
  17. throw new AgeException();
  18. }else {
  19. this.age = age;
  20. }
  21. }
  22. }

自定义异常类AgeException.java

  1. public class AgeException extends Exception{
  2. public AgeException(){
  3. super("年龄必须在0-120岁之间");
  4. }
  5. }

测试类Test02.java

  1. import java.util.Scanner;
  2. public class Test02 {
  3. public static void main(String[] args){
  4. Person p = new Person();
  5. Scanner sc = new Scanner(System.in);
  6. System.out.println("请输入你的年龄:");
  7. try {
  8. p.setAge(sc.nextInt());
  9. } catch (AgeException e) {
  10. e.printStackTrace();
  11. }
  12. System.out.println("年龄:"+p.getAge());
  13. }
  14. }

运行结果:

输入的年龄在0-120岁之间,正常输出

f0d2ac89b2154adb98faf42172fb8f8c.jpeg

输入年龄不在0-120岁之间,抛出异常

dcfc1e6a699d48f589b0d7571afc8816.jpeg

总结: 自定义异常类,当输入不合法时,代码不会报错,因为某一个异常而终止全部代码的运行。直接输出控制台代码异常的提示信息,用户看不懂,所以要抛出异常,用通俗简单的提示,给用户看。

发表评论

表情:
评论列表 (有 0 条评论,252人围观)

还没有评论,来说两句吧...

相关阅读