青春韶华

java手动抛出异常

2022-10-22  本文已影响0人  星空无痕

手动抛出异常:throw

        Java异常类对象除在程序执行过程中出现异常时由系统自动生成并抛出,也可根据需要使用人工创建并抛出。

        首先要生成异常类对象,然后通过throw语句实现抛出操作(提交给Java运行环境)。

                throw exceptionObject

        程序员也可以通过throw语句手动显式的抛出一个异常。throw语句的后面可以抛出的异常必须是Throwable或其子类的实例。下面的语句在编译时将会产生语法错误:

                throw new String("你抛我试试.");

        throw 语句必须写在函数中,执行throw 语句的地方就是一个异常抛出点,它和由JRE自动形成的异常抛出点没有任何差别。

public class StudentTest {

    public static void main(String[] args) {

        try {

            Student s = new Student();

            s.regist(-1001);

            System.out.println(s);

        } catch (Exception e) {

            System.out.println(e.getMessage());

        }

    }

}

class Student {

    private int id;

    public void regist(int id) throws Exception {

        if (id > 0) {

            this.id = id;

        } else {

            // System.out.println("您输入的数据非法!");

            //手动抛出异常对象

            // throw new RuntimeException("您输入的数据非法!");

            throw new Exception("您输入的数据非法!");

            //错误的

            // throw new String("不能输入负数");

        }

    }

    @Override

    public String toString() {

        return "Student [id=" + id + "]";

    }

}

throws和throw的区别:

        throw是语句抛出一个异常。

                语法:throw (异常对象);

                    throw e;

        throws是方法可能抛出异常的声明。(用在声明方法时,表示该方法可能要抛出异常)

                语法:[(修饰符)](返回值类型)(方法名)([参数列表])[throws(异常类)]{......}

                    public void doA(int a) throws Exception1,Exception3{......}

        throw语句用在方法体内,表示抛出异常,由方法体内的语句处理。

        throws出现在方法函数头,表示在抛出异常,由该方法的调用者来处理。

        throws主要是声明这个方法会抛出这种类型的异常,使它的调用者知道要捕获这个异常。

        throw是具体向外抛异常的动作,所以它是抛出一个异常实例。

        throws说明你有那个可能,倾向。

        throw的话,那就是你把那个倾向变成真实的了。

        两者都是消极处理异常的方式(这里的消极并不是说这种方式不好),只是抛出或者可能抛出异常,但是不会由函数去处理异常,真正的处理异常由函数的上层调用处理。

上一篇下一篇

猜你喜欢

热点阅读