百木园-与人分享,
就是让自己快乐。

IO(自定义异常类及测试)

 

/*
* 异常注意事项:
* A:子类重写父类方法时,子类的方法必须抛出相同的异常或父类异常的子类。(父亲坏了,儿子不能比父亲更坏)
* B:如果父类抛出了多个异常,子类重写父类时,只能抛出相同的异常或者是他的子集,子类不能抛出父类没有的异常
* C:如果被重写的方法没有异常抛出,那么子类的方法绝对不可以抛出异常,如果子类方法内有异常发生,那么子类只能try,不能throws
*/

/*
* java不可能对所有的情况都考虑到,所以,在实际的开发中,我们可能需要自己定义异常。
* 而我们自己随意的写一个类,是不能作为异常类来看的,要想你的类是一个异常类,就必须继承自Exception或者RuntimeException
*
* 两种方式:
* A:继承Exception
* B:继承RuntimeException

自定义异常类

 1 package cn.itcast_08;
 2 
 3 /*
 4  * java不可能对所有的情况都考虑到,所以,在实际的开发中,我们可能需要自己定义异常。
 5  * 而我们自己随意的写一个类,是不能作为异常类来看的,要想你的类是一个异常类,就必须继承自Exception或者RuntimeException
 6  * 
 7  * 两种方式:
 8  * A:继承Exception
 9  * B:继承RuntimeException
10  */
11 public class MyException extends Exception {
12     public MyException() {
13     }
14 
15     public MyException(String message) {
16         super(message);
17     }
18 }
19 
20 // public class MyException extends RuntimeException {
21 //
22 // }

老师类(定义一个调用方法)

package cn.itcast_08;

public class Teacher {
    public void check(int score) throws MyException {
        if (score > 100 || score < 0) {
            throw new MyException(\"分数必须在0-100之间\");
        } else {
            System.out.println(\"分数没有问题\");
        }
    }

    // 针对MyException继承自RuntimeException
    // public void check(int score) {
    // if (score > 100 || score < 0) {
    // throw new MyException();
    // } else {
    // System.out.println(\"分数没有问题\");
    // }
    // }
}

 自定义异常测试类

package cn.itcast_08;

import java.util.Scanner;

/*
 * 自定义异常测试类
 */
public class StudentDemo {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println(\"请输入学生成绩:\");
        int score = sc.nextInt();

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

 


来源:https://www.cnblogs.com/ztg-java-xuexi/p/16075432.html
本站部分图文来源于网络,如有侵权请联系删除。

未经允许不得转载:百木园 » IO(自定义异常类及测试)

相关推荐

  • 暂无文章