• Android(java)学习笔记24:自定义异常类


    1. 自定义异常:

      考试成绩必须在0-100之间 很明显java没有对应的异常,需要我们自己来做一个异常

      自定义异常

        继承自Exception

        继承自RuntimeException

    下面是一个代码示例:

    package cn.itcast_08;
    
    /*
     * java不可能对所有的情况都考虑到,所以,在实际的开发中,我们可能需要自己定义异常。
     * 而我们自己随意的写一个类,是不能作为异常类来看的,要想你的类是一个异常类,就必须继承自Exception或者RuntimeException
     * 
     * 两种方式:
     * A:继承Exception
     * B:继承RuntimeException
     */
    public class MyException extends Exception {
        public MyException() {
        }
    
        public MyException(String message) {//这里自定义的异常如果我们不知道怎么利用构造方法赋值,就追随到父类(平级类)源代码看人家怎么处理
            super(message);
        }
    }
    
    // public class MyException extends RuntimeException {
    //
    // }

    Teacher类:

     1 package cn.itcast_08;
     2 
     3 public class Teacher {
     4     public void check(int score) throws MyException {
     5         if (score > 100 || score < 0) {
     6             throw new MyException("分数必须在0-100之间");
     7         } else {
     8             System.out.println("分数没有问题");
     9         }
    10     }
    11 
    12     // 针对MyException继承自RuntimeException
    13     // public void check(int score) {
    14     // if (score > 100 || score < 0) {
    15     // throw new MyException();
    16     // } else {
    17     // System.out.println("分数没有问题");
    18     // }
    19     // }
    20 }

     测试类:

     1 package cn.itcast_08;
     2 
     3 import java.util.Scanner;
     4 
     5 /*
     6  * 自定义异常测试类
     7  */
     8 public class StudentDemo {
     9     public static void main(String[] args) {
    10         Scanner sc = new Scanner(System.in);
    11         System.out.println("请输入学生成绩:");
    12         int score = sc.nextInt();
    13 
    14         Teacher t = new Teacher();
    15         try {
    16             t.check(score);
    17         } catch (MyException e) {
    18             e.printStackTrace();
    19         }
    20     }
    21 }

     运行结果是:

  • 相关阅读:
    设计模式享元模式实现C++
    并查集
    设计模式代理模式实现C++
    设计模式装饰模式实现C++
    最小生成树Prim算法实现
    图的邻接矩阵存储
    威佐夫博弈(Wythoff Game)初识 HDU 1527 POJ 1067
    设计模式原型模式实现C++
    三种经典博弈问题 BashGame;WythoffGame;NimmGame;
    设计模式外观模式实现C++
  • 原文地址:https://www.cnblogs.com/hebao0514/p/4519045.html
Copyright © 2020-2023  润新知