java中的throws用法

Python019

java中的throws用法,第1张

”throws“的作用是不在本方法中进程异常处理,而是抛给调用此方法的类中进行处理。

解释:throws后,调用的方法必须进行此调用方法类的异常捕获,也可以继续向上抛出,最后一直到main方法上,此时虽然进行异常上抛,但是如果出现错误,也是可以正常的输出错误信息的。

第一:throw最重要的用法,不是先捕获再抛出,而是第一次抛出的时候,如

public int divide(int a,int b) throws DivideZeroException {

    if(b == 0)

        throw new DivideZeroException("can't divide 0")

    return a / b

}

然后:先捕获再抛出,是这样用的。

public int doSomeThing(int x, int y) {

    try {

        int a = divide(x + y, x - y)

        int b = divide(x - y, x + y)

        return a * b

    } catch (DivideZeroException e) {

        throw new RuntimeException("do some thing error", e)

    }

}

而且也可以不抛出,在本级就处理了。

public int doSomeThing(int x, int y) {

    try {

        int a = divide(x + y, x - y)

        int b = divide(x - y, x + y)

    } catch (DivideZeroException e) {

        Logger logger = Logger.getLogger(getClass())

        logger.info("do some thing error", e)

        return -1

    }

}

你问到:使用了throws的方法中即使没有throw,也依然可以抛出异常啊

回答:那是因为抛出的异常不是你手动抛出的,而是来自于你调用的方法(其根源还是在这个方法中用throw抛出的,或者是这个方法调用的方法)。